]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Call qemuMigrationAnyCompressionParse only from driver
authorJiri Denemark <jdenemar@redhat.com>
Mon, 12 Mar 2018 15:22:11 +0000 (16:22 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 17 Apr 2018 08:46:23 +0000 (10:46 +0200)
Propagate the calls up the stack to the point where
qemuMigrationParamsFromFlags is called. The end goal achieved in the
following few patches is to merge compression parameters into the
general migration parameters code.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_driver.c
src/qemu/qemu_migration.c
src/qemu/qemu_migration.h

index d438e7e27a5199bd908afd275c3741b39b92851b..850a121ed383cf4c50c0ebdd8c901826d69e64cb 100644 (file)
@@ -12104,6 +12104,7 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn,
     virQEMUDriverPtr driver = dconn->privateData;
     virDomainDefPtr def = NULL;
     char *origname = NULL;
+    qemuMigrationCompressionPtr compression = NULL;
     qemuMigrationParamsPtr migParams = NULL;
     int ret = -1;
 
@@ -12115,6 +12116,9 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn,
         goto cleanup;
     }
 
+    if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags)))
+        goto cleanup;
+
     if (!(migParams = qemuMigrationParamsFromFlags(NULL, 0, flags,
                                                    QEMU_MIGRATION_DESTINATION)))
         goto cleanup;
@@ -12134,9 +12138,10 @@ qemuDomainMigratePrepareTunnel(virConnectPtr dconn,
 
     ret = qemuMigrationDstPrepareTunnel(driver, dconn,
                                         NULL, 0, NULL, NULL, /* No cookies in v2 */
-                                        st, &def, origname, migParams, flags);
+                                        st, &def, origname, compression, migParams, flags);
 
  cleanup:
+    VIR_FREE(compression);
     qemuMigrationParamsFree(migParams);
     VIR_FREE(origname);
     virDomainDefFree(def);
@@ -12575,6 +12580,7 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dconn,
     virQEMUDriverPtr driver = dconn->privateData;
     virDomainDefPtr def = NULL;
     char *origname = NULL;
+    qemuMigrationCompressionPtr compression = NULL;
     qemuMigrationParamsPtr migParams = NULL;
     int ret = -1;
 
@@ -12586,6 +12592,9 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dconn,
         goto cleanup;
     }
 
+    if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags)))
+        goto cleanup;
+
     if (!(migParams = qemuMigrationParamsFromFlags(NULL, 0, flags,
                                                    QEMU_MIGRATION_DESTINATION)))
         goto cleanup;
@@ -12599,9 +12608,10 @@ qemuDomainMigratePrepareTunnel3(virConnectPtr dconn,
     ret = qemuMigrationDstPrepareTunnel(driver, dconn,
                                         cookiein, cookieinlen,
                                         cookieout, cookieoutlen,
-                                        st, &def, origname, migParams, flags);
+                                        st, &def, origname, compression, migParams, flags);
 
  cleanup:
+    VIR_FREE(compression);
     qemuMigrationParamsFree(migParams);
     VIR_FREE(origname);
     virDomainDefFree(def);
@@ -12624,6 +12634,7 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr dconn,
     const char *dom_xml = NULL;
     const char *dname = NULL;
     char *origname = NULL;
+    qemuMigrationCompressionPtr compression = NULL;
     qemuMigrationParamsPtr migParams = NULL;
     int ret = -1;
 
@@ -12645,6 +12656,9 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr dconn,
         goto cleanup;
     }
 
+    if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags)))
+        goto cleanup;
+
     if (!(migParams = qemuMigrationParamsFromFlags(params, nparams, flags,
                                                    QEMU_MIGRATION_DESTINATION)))
         goto cleanup;
@@ -12658,9 +12672,10 @@ qemuDomainMigratePrepareTunnel3Params(virConnectPtr dconn,
     ret = qemuMigrationDstPrepareTunnel(driver, dconn,
                                         cookiein, cookieinlen,
                                         cookieout, cookieoutlen,
-                                        st, &def, origname, migParams, flags);
+                                        st, &def, origname, compression, migParams, flags);
 
  cleanup:
+    VIR_FREE(compression);
     qemuMigrationParamsFree(migParams);
     VIR_FREE(origname);
     virDomainDefFree(def);
index e1a29d95695453501cd0f1160e5baa337d909b84..d4c5994f255b66f3a237db83289f223b65f9d9a9 100644 (file)
@@ -2531,12 +2531,10 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver,
                               virStreamPtr st,
                               virDomainDefPtr *def,
                               const char *origname,
+                              qemuMigrationCompressionPtr compression,
                               qemuMigrationParamsPtr migParams,
                               unsigned long flags)
 {
-    qemuMigrationCompressionPtr compression = NULL;
-    int ret;
-
     VIR_DEBUG("driver=%p, dconn=%p, cookiein=%s, cookieinlen=%d, "
               "cookieout=%p, cookieoutlen=%p, st=%p, def=%p, "
               "origname=%s, flags=0x%lx",
@@ -2549,15 +2547,10 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver,
         return -1;
     }
 
-    if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags)))
-        return -1;
-
-    ret = qemuMigrationDstPrepareAny(driver, dconn, cookiein, cookieinlen,
-                                     cookieout, cookieoutlen, def, origname,
-                                     st, NULL, 0, false, NULL, 0, NULL, 0,
-                                     compression, migParams, flags);
-    VIR_FREE(compression);
-    return ret;
+    return qemuMigrationDstPrepareAny(driver, dconn, cookiein, cookieinlen,
+                                      cookieout, cookieoutlen, def, origname,
+                                      st, NULL, 0, false, NULL, 0, NULL, 0,
+                                      compression, migParams, flags);
 }
 
 
@@ -3759,6 +3752,7 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver,
                                   unsigned long flags,
                                   const char *dname,
                                   unsigned long resource,
+                                  qemuMigrationCompressionPtr compression,
                                   qemuMigrationParamsPtr migParams)
 {
     virDomainPtr ddomain = NULL;
@@ -3770,7 +3764,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver,
     bool cancelled;
     virStreamPtr st = NULL;
     unsigned long destflags;
-    qemuMigrationCompressionPtr compression = NULL;
 
     VIR_DEBUG("driver=%p, sconn=%p, dconn=%p, vm=%p, dconnuri=%s, "
               "flags=0x%lx, dname=%s, resource=%lu",
@@ -3792,9 +3785,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver,
     destflags = flags & ~(VIR_MIGRATE_ABORT_ON_ERROR |
                           VIR_MIGRATE_AUTO_CONVERGE);
 
-    if (!(compression = qemuMigrationAnyCompressionParse(NULL, 0, flags)))
-        goto cleanup;
-
     VIR_DEBUG("Prepare2 %p", dconn);
     if (flags & VIR_MIGRATE_TUNNELLED) {
         /*
@@ -3895,7 +3885,6 @@ qemuMigrationSrcPerformPeer2Peer2(virQEMUDriverPtr driver,
     }
     VIR_FREE(uri_out);
     VIR_FREE(cookie);
-    VIR_FREE(compression);
 
     return ret;
 }
@@ -4409,7 +4398,7 @@ qemuMigrationSrcPerformPeer2Peer(virQEMUDriverPtr driver,
     } else {
         ret = qemuMigrationSrcPerformPeer2Peer2(driver, sconn, dconn, vm,
                                                 dconnuri, flags, dname, resource,
-                                                migParams);
+                                                compression, migParams);
     }
 
  cleanup:
index 2bf710a9195cc2f53d94a9be6a4bb7f00a5ccf61..3cd456568a97448dcc9d00532b227969f35c2d92 100644 (file)
@@ -148,6 +148,7 @@ qemuMigrationDstPrepareTunnel(virQEMUDriverPtr driver,
                               virStreamPtr st,
                               virDomainDefPtr *def,
                               const char *origname,
+                              qemuMigrationCompressionPtr compression,
                               qemuMigrationParamsPtr migParams,
                               unsigned long flags);