When the disk snapshot part of an external system checkpoint fails the memory image is retained. This patch adds code to remove the image in such case. --- src/qemu/qemu_driver.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 0a801f3..acbb556 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -11368,6 +11368,7 @@ qemuDomainSnapshotCreateActiveExternal(virConnectPtr conn, qemuDomainObjPrivatePtr priv = vm->privateData; char *xml = NULL; bool memory = snap->def->memory == VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL; + bool memory_unlink = false; bool atomic = !!(flags & VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC); bool transaction = qemuCapsGet(priv->caps, QEMU_CAPS_TRANSACTION); int thaw = 0; /* 1 if freeze succeeded, -1 if freeze failed */ @@ -11439,6 +11440,9 @@ qemuDomainSnapshotCreateActiveExternal(virConnectPtr conn, QEMU_ASYNC_JOB_SNAPSHOT)) < 0) goto endjob; + /* the memory image was created, remove it on errors */ + memory_unlink = true; + /* forbid any further manipulation */ qemuDomainObjSetAsyncJobMask(vm, DEFAULT_JOB_MASK); } @@ -11509,6 +11513,8 @@ endjob: cleanup: VIR_FREE(xml); + if (memory_unlink && ret < 0) + unlink(snap->def->file); return ret; } -- 1.8.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list