]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: snapshot: inactive external snapshot can't work after libvirtd restart
authorShanzhi Yu <shyu@redhat.com>
Sat, 6 Dec 2014 16:32:18 +0000 (00:32 +0800)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 13 Jan 2015 20:59:06 +0000 (15:59 -0500)
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 <shyu@redhat.com>
src/qemu/qemu_driver.c

index 89cb33d28a145d4b59cc1a220a313ced43905fc6..c02de0a2cde035843529fff1ec86f0163ee1aeb7 100644 (file)
@@ -12799,6 +12799,9 @@ qemuDomainSnapshotCreateInactiveExternal(virQEMUDriverPtr driver,
                 goto cleanup;
             }
             defdisk->src->format = snapdisk->src->format;
+
+            if (virDomainSaveConfig(cfg->configDir, vm->def) < 0)
+                goto cleanup;
         }
     }