[PATCH 2/2] qemu: block: Don't try to merge bitmaps into 'raw' images

Peter Krempa posted 2 patches 2 years, 2 months ago
[PATCH 2/2] qemu: block: Don't try to merge bitmaps into 'raw' images
Posted by Peter Krempa 2 years, 2 months ago
If any of the images in a chain above a raw image have bitmaps, libvirt
would attempt to merge them when doing a block commit or block copy
operation, which would result into a error in the logs as creating
persistent bitmaps in a raw image is not supported.

Since libvirt cares only about persisten bitmaps we can simply skip the
operation if the target of a block copy or block commit is a raw image.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_block.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index fab122942a..359595367b 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -3074,6 +3074,11 @@ qemuBlockBitmapsHandleBlockcopy(virStorageSource *src,
 {
     virStorageSource *base = NULL;

+    /* if copy destination is a 'raw' image there's no point in attempting to
+     * merge the bitmaps into it */
+    if (mirror->format == VIR_STORAGE_FILE_RAW)
+        return 0;
+
     if (shallow)
         base = src->backingStore;

@@ -3107,6 +3112,11 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
 {
     virStorageSource *writebitmapsrc = NULL;

+    /* if base is a 'raw' image there's no point in attempting to merge the
+     * bitmaps into it */
+    if (basesrc->format == VIR_STORAGE_FILE_RAW)
+        return 0;
+
     if (active)
         writebitmapsrc = basesrc;

-- 
2.42.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 2/2] qemu: block: Don't try to merge bitmaps into 'raw' images
Posted by Ján Tomko 2 years, 2 months ago
On a Thursday in 2023, Peter Krempa wrote:
>If any of the images in a chain above a raw image have bitmaps, libvirt
>would attempt to merge them when doing a block commit or block copy
>operation, which would result into a error in the logs as creating
>persistent bitmaps in a raw image is not supported.
>
>Since libvirt cares only about persisten bitmaps we can simply skip the

*persistent

>operation if the target of a block copy or block commit is a raw image.
>
>Signed-off-by: Peter Krempa <pkrempa@redhat.com>
>---
> src/qemu/qemu_block.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)

Jano
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org