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