]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainNamespaceSetupHostdev: Create paths in one go
authorMichal Privoznik <mprivozn@redhat.com>
Tue, 21 Jul 2020 10:14:02 +0000 (12:14 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 3 Aug 2020 17:40:34 +0000 (19:40 +0200)
While qemuDomainNamespaceMknodPaths() doesn't actually create
files in the namespace in one go (it forks for each path), it a
few commits time it will.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_namespace.c

index 663a542ff24ef73bd23c1cc701d9d5811639b0b7..063e11bb6d2dbea32a0dd66f99ebf9c6d579f60f 100644 (file)
@@ -1655,6 +1655,8 @@ qemuDomainNamespaceSetupHostdev(virDomainObjPtr vm,
                                 virDomainHostdevDefPtr hostdev)
 {
     g_autofree char *path = NULL;
+    VIR_AUTOSTRINGLIST paths = NULL;
+    size_t npaths = 0;
 
     if (!qemuDomainNamespaceEnabled(vm, QEMU_DOMAIN_NS_MOUNT))
         return 0;
@@ -1662,12 +1664,16 @@ qemuDomainNamespaceSetupHostdev(virDomainObjPtr vm,
     if (qemuDomainGetHostdevPath(hostdev, &path, NULL) < 0)
         return -1;
 
-    if (path && qemuDomainNamespaceMknodPath(vm, path) < 0)
+    if (path && virStringListAdd(&paths, path) < 0)
         return -1;
 
     if (qemuHostdevNeedsVFIO(hostdev) &&
         !qemuDomainNeedsVFIO(vm->def) &&
-        qemuDomainNamespaceMknodPath(vm, QEMU_DEV_VFIO) < 0)
+        virStringListAdd(&paths, QEMU_DEV_VFIO) < 0)
+        return -1;
+
+    npaths = virStringListLength((const char **) paths);
+    if (qemuDomainNamespaceMknodPaths(vm, (const char **) paths, npaths) < 0)
         return -1;
 
     return 0;