Ideally it should be possible to zero individual subclusters using this function, but this is currently not implemented.
Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Max Reitz <mre...@redhat.com> --- block/qcow2.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/block/qcow2.c b/block/qcow2.c index ad230ed1b1..d406ef355b 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3743,7 +3743,9 @@ static coroutine_fn int qcow2_co_pwrite_zeroes(BlockDriverState *bs, bytes = s->cluster_size; nr = s->cluster_size; ret = qcow2_get_host_offset(bs, offset, &nr, &off, &type); - if (ret < 0 || + /* TODO: allow zeroing separate subclusters, we only allow + * zeroing full clusters at the moment. */ + if (ret < 0 || nr != bytes || (type != QCOW2_SUBCLUSTER_UNALLOCATED_PLAIN && type != QCOW2_SUBCLUSTER_UNALLOCATED_ALLOC && type != QCOW2_SUBCLUSTER_ZERO_PLAIN && -- 2.20.1