From 1715dfce38f298c1977fd18ed4fcc9db50e374c9 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 16 May 2022 15:08:05 +0200 Subject: [PATCH] qemu: Convert passing of 'tapfds' to 'qemuFDPassDirect' MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_command.c | 15 +++++---------- src/qemu/qemu_domain.c | 2 +- src/qemu/qemu_domain.h | 2 +- src/qemu/qemu_hotplug.c | 4 ++-- 4 files changed, 9 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a626e2c99c..c2f3061e57 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -4208,7 +4208,7 @@ qemuBuildHostNetProps(virDomainNetDef *net) if (netpriv->tapfds) { nfds = 0; for (n = netpriv->tapfds; n; n = n->next) { - virBufferAsprintf(&buf, "%s:", qemuFDPassGetPath(n->data)); + virBufferAsprintf(&buf, "%s:", qemuFDPassDirectGetPath(n->data)); nfds++; } @@ -8709,16 +8709,13 @@ qemuBuildInterfaceConnect(virDomainObj *vm, /* 'vhostfd' is set to true in all cases when we need to process tapfds */ if (vhostfd) { - g_autofree char *prefix = g_strdup_printf("tapfd-%s", net->info.alias); size_t i; for (i = 0; i < tapfdSize; i++) { - g_autoptr(qemuFDPass) pass = qemuFDPassNewDirect(prefix, priv); - g_autofree char *suffix = g_strdup_printf("%zu", i); + g_autofree char *name = g_strdup_printf("tapfd-%s%zu", net->info.alias, i); int fd = tapfd[i]; /* we want to keep the array intact for security labeling*/ - qemuFDPassAddFD(pass, &fd, suffix); - netpriv->tapfds = g_slist_prepend(netpriv->tapfds, g_steal_pointer(&pass)); + netpriv->tapfds = g_slist_prepend(netpriv->tapfds, qemuFDPassDirectNew(name, &fd)); } netpriv->tapfds = g_slist_reverse(netpriv->tapfds); @@ -8881,10 +8878,8 @@ qemuBuildInterfaceCommandLine(virQEMUDriver *driver, virNetDevSetMTU(net->ifname, net->mtu) < 0) goto cleanup; - for (n = netpriv->tapfds; n; n = n->next) { - if (qemuFDPassTransferCommand(n->data, cmd) < 0) - return -1; - } + for (n = netpriv->tapfds; n; n = n->next) + qemuFDPassDirectTransferCommand(n->data, cmd); for (n = netpriv->vhostfds; n; n = n->next) qemuFDPassDirectTransferCommand(n->data, cmd); diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index eba556a6e7..f83ee55246 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -1054,7 +1054,7 @@ qemuDomainNetworkPrivateClearFDs(qemuDomainNetworkPrivate *priv) g_clear_pointer(&priv->slirpfd, qemuFDPassFree); g_clear_pointer(&priv->vdpafd, qemuFDPassFree); g_slist_free_full(g_steal_pointer(&priv->vhostfds), (GDestroyNotify) qemuFDPassDirectFree); - g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qemuFDPassFree); + g_slist_free_full(g_steal_pointer(&priv->tapfds), (GDestroyNotify) qemuFDPassDirectFree); } diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 9475c30e0c..521df8ca01 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -404,7 +404,7 @@ struct _qemuDomainNetworkPrivate { /* file descriptor transfer helpers */ qemuFDPass *slirpfd; - GSList *tapfds; + GSList *tapfds; /* qemuFDPassDirect */ GSList *vhostfds; /* qemuFDPassDirect */ qemuFDPass *vdpafd; }; diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 192329db4b..251f3df0a1 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -1373,7 +1373,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, qemuDomainObjEnterMonitor(driver, vm); for (n = netpriv->tapfds; n; n = n->next) { - if (qemuFDPassTransferMonitor(n->data, priv->mon) < 0) { + if (qemuFDPassDirectTransferMonitor(n->data, priv->mon) < 0) { qemuDomainObjExitMonitor(vm); goto cleanup; } @@ -1525,7 +1525,7 @@ qemuDomainAttachNetDevice(virQEMUDriver *driver, netdev_name); for (n = netpriv->tapfds; n; n = n->next) - qemuFDPassTransferMonitorRollback(n->data, priv->mon); + qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); for (n = netpriv->vhostfds; n; n = n->next) qemuFDPassDirectTransferMonitorRollback(n->data, priv->mon); -- 2.39.5