[PATCH 1/3] qemu: backup: Move setup of VIR_STORAGE_NET_HOST_TRANS_FD to qemuBackupPrepare

Peter Krempa via Devel posted 3 patches 3 days, 9 hours ago
There is a newer version of this series
[PATCH 1/3] qemu: backup: Move setup of VIR_STORAGE_NET_HOST_TRANS_FD to qemuBackupPrepare
Posted by Peter Krempa via Devel 3 days, 9 hours ago
From: Peter Krempa <pkrempa@redhat.com>

Consolidate the code under qemuBackupPrepare.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/qemu/qemu_backup.c | 52 +++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c
index ddab4be34b..65a083ea74 100644
--- a/src/qemu/qemu_backup.c
+++ b/src/qemu/qemu_backup.c
@@ -60,7 +60,8 @@ qemuDomainGetBackup(virDomainObj *vm)

 static int
 qemuBackupPrepare(qemuDomainObjPrivate *priv,
-                  virDomainBackupDef *def)
+                  virDomainBackupDef *def,
+                  qemuFDPassDirect **fdpass)
 {

     if (def->type == VIR_DOMAIN_BACKUP_TYPE_PULL) {
@@ -86,7 +87,29 @@ qemuBackupPrepare(qemuDomainObjPrivate *priv,
             /* TODO: Do we need to mess with selinux? */
             break;

-        case VIR_STORAGE_NET_HOST_TRANS_FD:
+        case VIR_STORAGE_NET_HOST_TRANS_FD: {
+            virDomainFDTuple *fdt = NULL;
+            VIR_AUTOCLOSE fdcopy = -1;
+
+            if (!(fdt = virHashLookup(priv->fds, def->server->fdgroup))) {
+                virReportError(VIR_ERR_INVALID_ARG,
+                               _("file descriptor group '%1$s' was not associated with the domain"),
+                               def->server->fdgroup);
+                return -1;
+            }
+
+            if (fdt->nfds != 1) {
+                virReportError(VIR_ERR_INVALID_ARG,
+                               _("file descriptor group '%1$s' must contain only 1 file descriptor for NBD server"),
+                               def->server->fdgroup);
+                return -1;
+            }
+
+            def->server->qemu_fdname = g_strdup("libvirt-backup-nbd");
+            fdcopy = dup(fdt->fds[0]);
+            *fdpass = qemuFDPassDirectNew(def->server->qemu_fdname, &fdcopy);
+        }
+
             break;

         case VIR_STORAGE_NET_HOST_TRANS_RDMA:
@@ -837,7 +860,7 @@ qemuBackupBegin(virDomainObj *vm,
         goto endjob;
     }

-    if (qemuBackupPrepare(priv, def) < 0)
+    if (qemuBackupPrepare(priv, def, &fdpass) < 0)
         goto endjob;

     if (qemuBackupBeginPrepareTLS(vm, cfg, def, &tlsProps, &tlsSecretProps) < 0)
@@ -874,29 +897,6 @@ qemuBackupBegin(virDomainObj *vm,

     priv->backup = g_steal_pointer(&def);

-    if (pull && priv->backup->server->fdgroup) {
-        virDomainFDTuple *fdt = NULL;
-        VIR_AUTOCLOSE fdcopy = -1;
-
-        if (!(fdt = virHashLookup(priv->fds, priv->backup->server->fdgroup))) {
-            virReportError(VIR_ERR_INVALID_ARG,
-                           _("file descriptor group '%1$s' was not associated with the domain"),
-                           priv->backup->server->fdgroup);
-            goto endjob;
-        }
-
-        if (fdt->nfds != 1) {
-            virReportError(VIR_ERR_INVALID_ARG,
-                           _("file descriptor group '%1$s' must contain only 1 file descriptor for NBD server"),
-                           priv->backup->server->fdgroup);
-            goto endjob;
-        }
-
-        priv->backup->server->qemu_fdname = g_strdup("libvirt-backup-nbd");
-        fdcopy = dup(fdt->fds[0]);
-        fdpass = qemuFDPassDirectNew(priv->backup->server->qemu_fdname, &fdcopy);
-    }
-
     if (qemuDomainObjEnterMonitorAsync(vm, VIR_ASYNC_JOB_BACKUP) < 0)
         goto endjob;

-- 
2.53.0