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