[PATCH] qemuNamespaceMknodPaths: Don't fork needlessly

Michal Privoznik mprivozn at redhat.com
Thu Sep 29 11:38:08 UTC 2022


The qemuNamespaceMknodPaths() function is responsible for
creating files/directories in QEMU's mount namespace. When
called, it is given list of paths that have to be created in the
namespace. It processes this list and removes items that are not
directly under /dev, but on a 'shared' filesystem (note that all
other mount points are preserved). And it may so happen that
after this pre-process no files/directories need to be created in
the namespace. If that's the case, exit early and avoid
fork()-ing only to find out the same.

Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
---
 src/qemu/qemu_namespace.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/qemu/qemu_namespace.c b/src/qemu/qemu_namespace.c
index 09e235e120..a2c31310d9 100644
--- a/src/qemu/qemu_namespace.c
+++ b/src/qemu/qemu_namespace.c
@@ -1293,6 +1293,9 @@ qemuNamespaceMknodPaths(virDomainObj *vm,
             goto cleanup;
     }
 
+    if (data.nitems == 0)
+        return 0;
+
     for (i = 0; i < data.nitems; i++) {
         qemuNamespaceMknodItem *item = &data.items[i];
         if (item->target &&
-- 
2.35.1



More information about the libvir-list mailing list