]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: add passtStateDir to qemu driver config
authorLaine Stump <laine@redhat.com>
Fri, 2 Dec 2022 18:38:01 +0000 (13:38 -0500)
committerLaine Stump <laine@redhat.com>
Mon, 9 Jan 2023 19:24:27 +0000 (14:24 -0500)
...following in the patter of slirpStateDir.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_conf.c
src/qemu/qemu_conf.h
src/qemu/qemu_driver.c

index 618ed78d63ab103b0dde18156aaaaf662a7eb806..16d52cbbd40ed670ca3306170bbafbafff89dd37 100644 (file)
@@ -225,6 +225,7 @@ virQEMUDriverConfig *virQEMUDriverConfigNew(bool privileged,
     cfg->configDir = g_strdup_printf("%s/qemu", cfg->configBaseDir);
     cfg->autostartDir = g_strdup_printf("%s/qemu/autostart", cfg->configBaseDir);
     cfg->slirpStateDir = g_strdup_printf("%s/slirp", cfg->stateDir);
+    cfg->passtStateDir = g_strdup_printf("%s/passt", cfg->stateDir);
     cfg->dbusStateDir = g_strdup_printf("%s/dbus", cfg->stateDir);
 
     /* Set the default directory to find TLS X.509 certificates.
@@ -310,6 +311,7 @@ static void virQEMUDriverConfigDispose(void *obj)
     g_free(cfg->stateDir);
     g_free(cfg->swtpmStateDir);
     g_free(cfg->slirpStateDir);
+    g_free(cfg->passtStateDir);
     g_free(cfg->dbusStateDir);
 
     g_free(cfg->libDir);
index b7ed00ca41af80df81c02a210e45b33ba8e3de18..11c740d28fd854c0576ddad7ccac8e2e4780472d 100644 (file)
@@ -95,6 +95,7 @@ struct _virQEMUDriverConfig {
     char *stateDir;
     char *swtpmStateDir;
     char *slirpStateDir;
+    char *passtStateDir;
     char *dbusStateDir;
     /* These two directories are ones QEMU processes use (so must match
      * the QEMU user/group */
index 3b30b6df386d269f41e2e64d290b1f4680df66f3..a88c9ebe642cb9638dc2d60ce0cfc326f2d90b94 100644 (file)
@@ -663,6 +663,11 @@ qemuStateInitialize(bool privileged,
                              cfg->slirpStateDir);
         goto error;
     }
+    if (g_mkdir_with_parents(cfg->passtStateDir, 0777) < 0) {
+        virReportSystemError(errno, _("Failed to create passt state dir %s"),
+                             cfg->passtStateDir);
+        goto error;
+    }
 
     if (virDirCreate(cfg->dbusStateDir, 0770, cfg->user, cfg->group,
                      VIR_DIR_CREATE_ALLOW_EXIST) < 0) {
@@ -811,6 +816,13 @@ qemuStateInitialize(bool privileged,
                                  (int)cfg->group);
             goto error;
         }
+        if (chown(cfg->passtStateDir, cfg->user, cfg->group) < 0) {
+            virReportSystemError(errno,
+                                 _("unable to set ownership of '%s' to %d:%d"),
+                                 cfg->passtStateDir, (int)cfg->user,
+                                 (int)cfg->group);
+            goto error;
+        }
 
         run_uid = cfg->user;
         run_gid = cfg->group;