From: Eric Blake Date: Thu, 23 Jun 2016 22:37:15 +0000 (-0600) Subject: qcow2: Set request_alignment during .bdrv_refresh_limits() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a84178ccff77d48261d31a78f1edfc58c9bdaa47;p=qemu.git qcow2: Set request_alignment during .bdrv_refresh_limits() We want to eventually stick request_alignment alongside other BlockLimits, but first, we must ensure it is populated at the same time as all other limits, rather than being a special case that is set only when a block is first opened. Signed-off-by: Eric Blake Reviewed-by: Kevin Wolf Reviewed-by: Fam Zheng Signed-off-by: Kevin Wolf --- diff --git a/block/qcow2.c b/block/qcow2.c index 23f666d4ae..48f80b6a7b 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -981,9 +981,6 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags, } bs->encrypted = 1; - - /* Encryption works on a sector granularity */ - bs->request_alignment = BDRV_SECTOR_SIZE; } s->l2_bits = s->cluster_bits - 3; /* L2 is always one cluster */ @@ -1202,6 +1199,10 @@ static void qcow2_refresh_limits(BlockDriverState *bs, Error **errp) { BDRVQcow2State *s = bs->opaque; + if (bs->encrypted) { + /* Encryption works on a sector granularity */ + bs->request_alignment = BDRV_SECTOR_SIZE; + } bs->bl.pwrite_zeroes_alignment = s->cluster_size; }