qemuNamespaceMknodPaths: Don't fork needlessly

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@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2022-09-28 09:47:37 +02:00
parent 85aafea449
commit 84adb87105

View File

@ -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 &&