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 <eblake@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
c8b3b998e2
commit
a84178ccff
@ -981,9 +981,6 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags,
|
|||||||
}
|
}
|
||||||
|
|
||||||
bs->encrypted = 1;
|
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 */
|
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;
|
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;
|
bs->bl.pwrite_zeroes_alignment = s->cluster_size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user