On a Monday in 2021, Michal Privoznik wrote:
After previous commit, the log directory doesn't have to be
passed as an extra argument but can be deducted from logfile
path.
I'm not convinced this is an improvement.
From the execution point of view it's one passed argument vs
finding a slash and copying a string, so extra work.
And for code clarity, the new version adds more lines
and obscures the fact that logDir is configured per-host,
not per-vm.
If you feel qemuTPMEmulatorPrepareHost has too many arguments,
you can pass cfg.
Jano
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/qemu/qemu_tpm.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
index b11c5474a5..5ee5efa6b0 100644
--- a/src/qemu/qemu_tpm.c
+++ b/src/qemu/qemu_tpm.c
@@ -274,7 +274,6 @@ qemuTPMEmulatorGetPid(const char *swtpmStateDir,
* qemuTPMEmulatorPrepareHost:
*
* @tpm: tpm definition
- * @logDir: directory where swtpm writes its logs into
* @swtpm_user: uid to run the swtpm with
* @swtpm_group: gid to run the swtpm with
* @swtpmStateDir: directory for swtpm's persistent state
@@ -287,16 +286,19 @@ qemuTPMEmulatorGetPid(const char *swtpmStateDir,
*/
static int
qemuTPMEmulatorPrepareHost(virDomainTPMDefPtr tpm,
- const char *logDir,
uid_t swtpm_user,
gid_t swtpm_group,
const char *swtpmStateDir,
uid_t qemu_user,
const char *shortName)
{
+ g_autofree char *logDir = NULL;
+
if (virTPMEmulatorInit() < 0)
return -1;
+ logDir = g_path_get_dirname(tpm->data.emulator.logfile);
+
/* create log dir ... allow 'tss' user to cd into it */
if (virFileMakePathWithMode(logDir, 0711) < 0)
return -1;
@@ -732,7 +734,7 @@ qemuExtTPMPrepareHost(virQEMUDriverPtr driver,
if (!shortName)
return -1;
- return qemuTPMEmulatorPrepareHost(def->tpms[i], cfg->swtpmLogDir,
+ return qemuTPMEmulatorPrepareHost(def->tpms[i],
cfg->swtpm_user,
cfg->swtpm_group,
cfg->swtpmStateDir, cfg->user,
--
2.26.2