From 98a24813c8d5cde9522b47e6863938d1a3e24448 Mon Sep 17 00:00:00 2001 From: Laine Stump Date: Fri, 2 Dec 2022 13:38:01 -0500 Subject: [PATCH] qemu: add passtStateDir to qemu driver config MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ...following in the patter of slirpStateDir. Signed-off-by: Laine Stump Reviewed-by: Ján Tomko --- src/qemu/qemu_conf.c | 2 ++ src/qemu/qemu_conf.h | 1 + src/qemu/qemu_driver.c | 12 ++++++++++++ 3 files changed, 15 insertions(+) diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c index 618ed78d63..16d52cbbd4 100644 --- a/src/qemu/qemu_conf.c +++ b/src/qemu/qemu_conf.c @@ -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); diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h index b7ed00ca41..11c740d28f 100644 --- a/src/qemu/qemu_conf.h +++ b/src/qemu/qemu_conf.h @@ -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 */ diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 3b30b6df38..a88c9ebe64 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -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;