]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Separate cookie parsing for qemuMigrationDstFinishOffline
authorJiri Denemark <jdenemar@redhat.com>
Tue, 10 May 2022 13:20:25 +0000 (15:20 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 7 Jun 2022 15:40:20 +0000 (17:40 +0200)
To keep all cookie handling (parsing and formatting) in the same
function.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_migration.c

index 3eb04f3472846d14f109c8edf8a9b5b692afb6d5..b39636369f17a90ebda0b008469532dee3d9f948 100644 (file)
@@ -5812,11 +5812,19 @@ static virDomainPtr
 qemuMigrationDstFinishOffline(virQEMUDriver *driver,
                               virConnectPtr dconn,
                               virDomainObj *vm,
-                              qemuMigrationCookie *mig,
+                              int cookie_flags,
+                              const char *cookiein,
+                              int cookieinlen,
                               char **cookieout,
                               int *cookieoutlen)
 {
     virDomainPtr dom = NULL;
+    qemuDomainObjPrivate *priv = vm->privateData;
+    g_autoptr(qemuMigrationCookie) mig = NULL;
+
+    if (!(mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv,
+                                         cookiein, cookieinlen, cookie_flags)))
+        return NULL;
 
     if (qemuMigrationDstPersist(driver, vm, mig, false) < 0)
         return NULL;
@@ -6019,13 +6027,11 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
      * even though VIR_MIGRATE_PERSIST_DEST was not used. */
     cookie_flags |= QEMU_MIGRATION_COOKIE_PERSISTENT;
 
-    if (!(mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv,
-                                         cookiein, cookieinlen, cookie_flags)))
-        goto error;
-
     if (flags & VIR_MIGRATE_OFFLINE) {
         if (retcode == 0) {
-            dom = qemuMigrationDstFinishOffline(driver, dconn, vm, mig,
+            dom = qemuMigrationDstFinishOffline(driver, dconn, vm,
+                                                cookie_flags,
+                                                cookiein, cookieinlen,
                                                 cookieout, cookieoutlen);
         }
 
@@ -6033,6 +6039,10 @@ qemuMigrationDstFinish(virQEMUDriver *driver,
         goto cleanup;
     }
 
+    if (!(mig = qemuMigrationCookieParse(driver, vm->def, priv->origname, priv,
+                                         cookiein, cookieinlen, cookie_flags)))
+        goto error;
+
     if (retcode != 0) {
         /* Check for a possible error on the monitor in case Finish was called
          * earlier than monitor EOF handler got a chance to process the error