]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: remove VIR_DOMAIN_SAVE_PARALLEL flag
authorPavel Hrdina <phrdina@redhat.com>
Thu, 20 Mar 2025 22:42:05 +0000 (23:42 +0100)
committerPavel Hrdina <phrdina@redhat.com>
Fri, 21 Mar 2025 09:56:19 +0000 (10:56 +0100)
There is no need to use extra flag in addition to the new
"parallel.channels" param.

Using the flag without param would result in using uninitialized
variable. Fixing it would result in error that parallel channels cannot
be less then 1 or setting 1 as default.

Using the param without the flag is ignored.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Jim Fehlig <jfehlig@suse.com>
include/libvirt/libvirt-domain.h
src/qemu/qemu_driver.c
src/qemu/qemu_migration_params.c
tools/virsh-domain.c

index 233bfd927a725eaca2251fb615817dfda42477f9..6e11baa3d3d04902129e3a28a84ba0e5a15a74c5 100644 (file)
@@ -1655,7 +1655,6 @@ typedef enum {
     VIR_DOMAIN_SAVE_RUNNING      = 1 << 1, /* Favor running over paused (Since: 0.9.5) */
     VIR_DOMAIN_SAVE_PAUSED       = 1 << 2, /* Favor paused over running (Since: 0.9.5) */
     VIR_DOMAIN_SAVE_RESET_NVRAM  = 1 << 3, /* Re-initialize NVRAM from template (Since: 8.1.0) */
-    VIR_DOMAIN_SAVE_PARALLEL     = 1 << 4, /* Save and restore using parallel channels (Since: 10.6.0) */
 } virDomainSaveRestoreFlags;
 
 int                     virDomainSave           (virDomainPtr domain,
index 21df94961b0c2f3ee66d37484236b58df2adadce..3cf21380ed8e7b032cd28b665aa1ac6111bf9fa2 100644 (file)
@@ -2822,8 +2822,7 @@ qemuDomainSaveParams(virDomainPtr dom,
 
     virCheckFlags(VIR_DOMAIN_SAVE_BYPASS_CACHE |
                   VIR_DOMAIN_SAVE_RUNNING |
-                  VIR_DOMAIN_SAVE_PAUSED |
-                  VIR_DOMAIN_SAVE_PARALLEL, -1);
+                  VIR_DOMAIN_SAVE_PAUSED, -1);
 
     if (virTypedParamsValidate(params, nparams,
                                VIR_DOMAIN_SAVE_PARAM_FILE,
@@ -5762,8 +5761,7 @@ qemuDomainRestoreInternal(virConnectPtr conn,
     virCheckFlags(VIR_DOMAIN_SAVE_BYPASS_CACHE |
                   VIR_DOMAIN_SAVE_RUNNING |
                   VIR_DOMAIN_SAVE_PAUSED |
-                  VIR_DOMAIN_SAVE_RESET_NVRAM |
-                  VIR_DOMAIN_SAVE_PARALLEL, -1);
+                  VIR_DOMAIN_SAVE_RESET_NVRAM, -1);
 
     if (flags & VIR_DOMAIN_SAVE_RESET_NVRAM)
         reset_nvram = true;
index b696b0d13e24889172313e1ef7840d36d66993db..17d08f4aa54eaf5a5dce1e40cfb61ee0b206af85 100644 (file)
@@ -803,11 +803,20 @@ qemuMigrationParamsForSave(virTypedParameterPtr params,
                            unsigned int flags)
 {
     g_autoptr(qemuMigrationParams) saveParams = NULL;
+    int nchannels = 0;
+    int rv;
 
-    if (flags & VIR_DOMAIN_SAVE_PARALLEL && !sparse) {
+    if ((rv = virTypedParamsGetInt(params, nparams,
+                                   VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS,
+                                   &nchannels)) < 0)
+        return NULL;
+
+    if (rv == 1 && !sparse) {
         virReportError(VIR_ERR_INVALID_ARG, "%s",
                        _("Parallel save is only supported with the 'sparse' save image format"));
         return NULL;
+    } else if (rv == 0) {
+        nchannels = 1;
     }
 
     if (!(saveParams = qemuMigrationParamsNew()))
@@ -819,24 +828,13 @@ qemuMigrationParamsForSave(virTypedParameterPtr params,
         if (virBitmapSetBit(saveParams->caps, QEMU_MIGRATION_CAP_MULTIFD) < 0)
             return NULL;
 
-        if (flags & VIR_DOMAIN_SAVE_PARALLEL) {
-            int nchannels;
-
-            if (params && virTypedParamsGetInt(params, nparams,
-                                               VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS,
-                                               &nchannels) < 0)
-                return NULL;
-
-            if (nchannels < 1) {
-                virReportError(VIR_ERR_INVALID_ARG, "%s",
-                               _("number of parallel save channels cannot be less than 1"));
-                return NULL;
-            }
-
-            saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].value.i = nchannels;
-        } else {
-            saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].value.i = 1;
+        if (nchannels < 1) {
+            virReportError(VIR_ERR_INVALID_ARG, "%s",
+                       _("number of parallel save channels cannot be less than 1"));
+            return NULL;
         }
+
+        saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].value.i = nchannels;
         saveParams->params[QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS].set = true;
 
         if (flags & VIR_DOMAIN_SAVE_BYPASS_CACHE) {
index 7adf6c16fab8398ac218fbca43bb1147b1de16d4..56ddf4d70173e006d0ece2dcc3fd582bd8cac21b 100644 (file)
@@ -4597,13 +4597,10 @@ doSave(void *opaque)
 
     if ((rc = vshCommandOptInt(ctl, cmd, "parallel-channels", &nchannels)) < 0)
         goto out;
-    if (rc == 1) {
-        if (virTypedParamsAddInt(&params, &nparams, &maxparams,
-                                 VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS, nchannels) < 0)
-            goto out;
-
-        flags |= VIR_DOMAIN_SAVE_PARALLEL;
-    }
+    if (rc == 1 &&
+        virTypedParamsAddInt(&params, &nparams, &maxparams,
+                             VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS, nchannels) < 0)
+        goto out;
 
     if (vshCommandOptString(ctl, cmd, "xml", &xmlfile) < 0)
         goto out;
@@ -5728,13 +5725,10 @@ cmdRestore(vshControl *ctl, const vshCmd *cmd)
 
     if ((rc = vshCommandOptInt(ctl, cmd, "parallel-channels", &nchannels)) < 0)
         return false;
-    if (rc == 1) {
-        if (virTypedParamsAddInt(&params, &nparams, &maxparams,
-                                 VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS, nchannels) < 0)
-            return false;
-
-        flags |= VIR_DOMAIN_SAVE_PARALLEL;
-    }
+    if (rc == 1 &&
+        virTypedParamsAddInt(&params, &nparams, &maxparams,
+                             VIR_DOMAIN_SAVE_PARAM_PARALLEL_CHANNELS, nchannels) < 0)
+        return false;
 
     if (flags || xml) {
         rc = virDomainRestoreParams(priv->conn, params, nparams, flags);