[libvirt] [PATCH 18/20] snapshot: qemu: Fix detection of external snapshots when deleting
Peter Krempa
pkrempa at redhat.com
Tue Oct 23 15:12:40 UTC 2012
Only external disk snapshots were taken into account while checking if
snapshot deletion is possible. This patch adds checking also for
external checkpoint.s
---
src/qemu/qemu_driver.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 2ac079b..02bffb4 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -1992,7 +1992,7 @@ cleanup:
}
-/* Count how many snapshots in a set have external disk snapshots. */
+/* Count how many snapshots in a set are external snapshots or checkpoints. */
static void
qemuDomainSnapshotCountExternal(void *payload,
const void *name ATTRIBUTE_UNUSED,
@@ -2001,7 +2001,7 @@ qemuDomainSnapshotCountExternal(void *payload,
virDomainSnapshotObjPtr snap = payload;
int *count = data;
- if (snap->def->state == VIR_DOMAIN_DISK_SNAPSHOT)
+ if (virDomainSnapshotIsExternal(snap))
(*count)++;
}
@@ -12346,7 +12346,7 @@ static int qemuDomainSnapshotDelete(virDomainSnapshotPtr snapshot,
if (!(flags & VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY)) {
if (!(flags & VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY) &&
- snap->def->state == VIR_DOMAIN_DISK_SNAPSHOT)
+ virDomainSnapshotIsExternal(snap))
external++;
if (flags & VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN)
virDomainSnapshotForEachDescendant(snap,
--
1.7.12.4
More information about the libvir-list
mailing list