]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Fix logic bug in inactive snapshot deletion
authorPeter Krempa <pkrempa@redhat.com>
Wed, 9 Dec 2020 09:08:53 +0000 (10:08 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 9 Dec 2020 12:47:26 +0000 (13:47 +0100)
Commit 926563dc3a6 which refactored the function call deleting the
snapshot's on disk state introduced a logic bug, which skips over the
deletion of libvirt metadata after the disk state deletion is done.

To fix it we must not return early.

Resolves: https://gitlab.com/libvirt/libvirt/-/issues/109
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
src/qemu/qemu_domain.c

index 6781fb6cf0e25cd83f5342306fd50d4e32907556..766f76020ca69e2c40ff4d12afae46426a2fbb57 100644 (file)
@@ -6666,7 +6666,8 @@ qemuDomainSnapshotDiscard(virQEMUDriverPtr driver,
             if (!def)
                 def = vm->def;
 
-            return qemuDomainSnapshotForEachQcow2(driver, def, snap, "-d", true);
+            if (qemuDomainSnapshotForEachQcow2(driver, def, snap, "-d", true) < 0)
+                return -1;
         } else {
             priv = vm->privateData;
             qemuDomainObjEnterMonitor(driver, vm);