From: Shanzhi Yu Date: Sat, 6 Dec 2014 16:32:18 +0000 (+0800) Subject: qemu: snapshot: inactive external snapshot can't work after libvirtd restart X-Git-Tag: v1.2.12-rc1~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f974858dde667bda55fbfbec56aa16d9ced870d;p=thirdparty%2Flibvirt.git qemu: snapshot: inactive external snapshot can't work after libvirtd restart When create inactive external snapshot, after update disk definitions, virDomainSaveConfig is needed, if not after restart libvirtd the new snapshot file definitions in xml will be lost. Reproduce steps: 1. prepare a shut off guest $ virsh domstate rhel7 && virsh domblklist rhel7 shut off Target Source ------------------------------------------------ vda /var/lib/libvirt/images/rhel7.img 2. create external disk snapshot $ virsh snapshot-create rhel7 --disk-only && virsh domblklist rhel7 Domain snapshot 1417882967 created Target Source ------------------------------------------------ vda /var/lib/libvirt/images/rhel7.1417882967 3. restart libvirtd then check guest source file $ service libvirtd restart && virsh domblklist rhel7 Redirecting to /bin/systemctl restart libvirtd.service Target Source ------------------------------------------------ vda /var/lib/libvirt/images/rhel7.img This was first reported by Eric Blake http://www.redhat.com/archives/libvir-list/2014-December/msg00369.html Signed-off-by: Shanzhi Yu --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 89cb33d28a..c02de0a2cd 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -12799,6 +12799,9 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDriverPtr driver, goto cleanup; } defdisk->src->format = snapdisk->src->format; + + if (virDomainSaveConfig(cfg->configDir, vm->def) < 0) + goto cleanup; } }