From: Alberto Garcia Date: Fri, 10 Jul 2020 16:13:08 +0000 (+0200) Subject: qcow2: Clear the L2 bitmap when allocating a compressed cluster X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=ff4cdec7f6e7302d2a82fdb627373c32aecb3dfe;p=qmiga%2Fqemu.git qcow2: Clear the L2 bitmap when allocating a compressed cluster Compressed clusters always have the bitmap part of the extended L2 entry set to 0. Signed-off-by: Alberto Garcia Reviewed-by: Max Reitz Message-Id: <04455b3de5dfeb9d1cfe1fc7b02d7060a6e09710.1594396418.git.berto@igalia.com> Signed-off-by: Max Reitz --- diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c index 816ddc7639..1e84bd8e2e 100644 --- a/block/qcow2-cluster.c +++ b/block/qcow2-cluster.c @@ -862,6 +862,9 @@ int qcow2_alloc_compressed_cluster_offset(BlockDriverState *bs, BLKDBG_EVENT(bs->file, BLKDBG_L2_UPDATE_COMPRESSED); qcow2_cache_entry_mark_dirty(s->l2_table_cache, l2_slice); set_l2_entry(s, l2_slice, l2_index, cluster_offset); + if (has_subclusters(s)) { + set_l2_bitmap(s, l2_slice, l2_index, 0); + } qcow2_cache_put(s->l2_table_cache, (void **) &l2_slice); *host_offset = cluster_offset & s->cluster_offset_mask;