]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemuProcessPrepareHost: Create domain private dirs as early as possible
authorMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Dec 2021 11:17:14 +0000 (12:17 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 13 Dec 2021 11:53:39 +0000 (12:53 +0100)
As of ff024b60cc3 we are opening chardevs before starting QEMU.
However, we are also doing that before domain private directories
are created. This leaves us unable to create guest agent socket
which lives under priv->channelTargetDir.

While creating the dirs can be moved just before
qemuProcessPrepareHostBackendChardev() it's better to do it as
the very first step so that this kind of error is prevented in
future.

Fixes: ff024b60cc39d5d41b1e68728a00a47e103ec4dd
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
src/qemu/qemu_process.c

index 4963ce383f2f8856f1eb4ad855fae05e2b8fb8e8..82d0af5549218ed4df5e81fb21703ea1ab8a822b 100644 (file)
@@ -7024,6 +7024,14 @@ qemuProcessPrepareHost(virQEMUDriver *driver,
     qemuDomainObjPrivate *priv = vm->privateData;
     g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
 
+    /*
+     * Create all per-domain directories in order to make sure domain
+     * with any possible seclabels can access it.
+     */
+    if (qemuProcessMakeDir(driver, vm, priv->libDir) < 0 ||
+        qemuProcessMakeDir(driver, vm, priv->channelTargetDir) < 0)
+        return -1;
+
     if (qemuPrepareNVRAM(driver, vm) < 0)
         return -1;
 
@@ -7085,14 +7093,6 @@ qemuProcessPrepareHost(virQEMUDriver *driver,
         return -1;
     }
 
-    /*
-     * Create all per-domain directories in order to make sure domain
-     * with any possible seclabels can access it.
-     */
-    if (qemuProcessMakeDir(driver, vm, priv->libDir) < 0 ||
-        qemuProcessMakeDir(driver, vm, priv->channelTargetDir) < 0)
-        return -1;
-
     VIR_DEBUG("Write domain masterKey");
     if (qemuDomainWriteMasterKeyFile(driver, vm) < 0)
         return -1;