]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_snapshot: create: move saving metadata to separate function
authorPavel Hrdina <phrdina@redhat.com>
Mon, 4 Oct 2021 18:18:49 +0000 (20:18 +0200)
committerPavel Hrdina <phrdina@redhat.com>
Wed, 1 Dec 2021 11:33:41 +0000 (12:33 +0100)
Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_snapshot.c

index 32eb2eeb8953b77ff65ebd01390ed79e83c335f2..95c1e83f2d9acbc146d3407f3cc22441e2a40a2a 100644 (file)
@@ -1693,6 +1693,27 @@ qemuSnapshotCreateAlignDisks(virDomainObj *vm,
 }
 
 
+static int
+qemuSnapshotCreateWriteMetadata(virDomainObj *vm,
+                                virDomainMomentObj *snap,
+                                virQEMUDriver *driver,
+                                virQEMUDriverConfig *cfg)
+{
+    if (qemuDomainSnapshotWriteMetadata(vm, snap,
+                                        driver->xmlopt,
+                                        cfg->snapshotDir) < 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("unable to save metadata for snapshot %s"),
+                       snap->def->name);
+        return -1;
+    }
+
+    virDomainSnapshotLinkParent(vm->snapshots, snap);
+
+    return 0;
+}
+
+
 virDomainSnapshotPtr
 qemuSnapshotCreateXML(virDomainPtr domain,
                       virDomainObj *vm,
@@ -1821,20 +1842,14 @@ qemuSnapshotCreateXML(virDomainPtr domain,
         if (!redefine || (flags & VIR_DOMAIN_SNAPSHOT_CREATE_CURRENT))
             qemuSnapshotSetCurrent(vm, snap);
 
-        if (qemuDomainSnapshotWriteMetadata(vm, snap,
-                                            driver->xmlopt,
-                                            cfg->snapshotDir) < 0) {
+        if (qemuSnapshotCreateWriteMetadata(vm, snap, driver, cfg) < 0) {
             /* if writing of metadata fails, error out rather than trying
              * to silently carry on without completing the snapshot */
             virObjectUnref(snapshot);
             snapshot = NULL;
-            virReportError(VIR_ERR_INTERNAL_ERROR,
-                           _("unable to save metadata for snapshot %s"),
-                           snap->def->name);
             goto endjob;
         }
 
-        virDomainSnapshotLinkParent(vm->snapshots, snap);
         snap = NULL;
     }