block: add BlockLimits structure to BlockDriverState

this patch adds BlockLimits which introduces discard and write_zeroes
limits and alignment information to the BlockDriverState.

Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Peter Lieven 2013-10-24 12:06:56 +02:00 committed by Kevin Wolf
parent 186d4f2b1d
commit fe81c2cca6

View File

@ -230,6 +230,20 @@ struct BlockDriver {
QLIST_ENTRY(BlockDriver) list;
};
typedef struct BlockLimits {
/* maximum number of sectors that can be discarded at once */
int max_discard;
/* optimal alignment for discard requests in sectors */
int64_t discard_alignment;
/* maximum number of sectors that can zeroized at once */
int max_write_zeroes;
/* optimal alignment for write zeroes requests in sectors */
int64_t write_zeroes_alignment;
} BlockLimits;
/*
* Note: the function bdrv_append() copies and swaps contents of
* BlockDriverStates, so if you add new fields to this struct, please
@ -283,6 +297,9 @@ struct BlockDriverState {
uint64_t total_time_ns[BDRV_MAX_IOTYPE];
uint64_t wr_highest_sector;
/* I/O Limits */
BlockLimits bl;
/* Whether the disk can expand beyond total_sectors */
int growable;