mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-05 05:45:46 +00:00
qemu: block: Don't try to merge bitmaps into 'raw' images
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 persistent 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> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
94f1883c89
commit
0a1d2b43e0
@ -3074,6 +3074,11 @@ qemuBlockBitmapsHandleBlockcopy(virStorageSource *src,
|
|||||||
{
|
{
|
||||||
virStorageSource *base = NULL;
|
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)
|
if (shallow)
|
||||||
base = src->backingStore;
|
base = src->backingStore;
|
||||||
|
|
||||||
@ -3107,6 +3112,11 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
|
|||||||
{
|
{
|
||||||
virStorageSource *writebitmapsrc = NULL;
|
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)
|
if (active)
|
||||||
writebitmapsrc = basesrc;
|
writebitmapsrc = basesrc;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user