]> git.ipfire.org Git - thirdparty/qemu.git/commit
qcow2: fix image corruption on commit with persistent bitmap
authorEric Blake <eblake@redhat.com>
Fri, 17 Nov 2017 16:47:47 +0000 (10:47 -0600)
committerKevin Wolf <kwolf@redhat.com>
Fri, 17 Nov 2017 17:21:01 +0000 (18:21 +0100)
commit4096974e1885913dfe2931863be47bd35b266521
treed302d6c3ae11cd2197ff281a37cbf252f8d28942
parent3590cd0f045a5ba8ab40815ba887cbb2b71f0af9
qcow2: fix image corruption on commit with persistent bitmap

If an image contains persistent bitmaps, we cannot use the
fast path of bdrv_make_empty() to clear the image during
qemu-img commit, because that will lose the clusters related
to the bitmaps.

Also leave a comment in qcow2_read_extensions to remind future
feature additions to think about fast-path removal, since we
just barely fixed the same bug for LUKS encryption.

It's a pain that qemu-img has not yet been taught to manipulate,
or even at a very minimum display, information about persistent
bitmaps; instead, we have to use QMP commands.  It's also a
pain that only qeury-block and x-debug-block-dirty-bitmap-sha256
will allow bitmap introspection; but the former requires the
node to be hooked to a block device, and the latter is experimental.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block/qcow2.c
tests/qemu-iotests/176
tests/qemu-iotests/176.out