From: Stefan Berger Date: Mon, 24 Oct 2022 10:28:43 +0000 (-0400) Subject: qemu: tpm: Introduce qemuTPMHasSharedStorage() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=384138d7904030906e6a67cccc8ca89cdbac52b8;p=libvirt.git qemu: tpm: Introduce qemuTPMHasSharedStorage() New qemuTPMHasSharedStorage() function is introduced which returns whether the swtpm state directory is on a shared filesystem (e.g. NFS). Signed-off-by: Stefan Berger Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 615b3178e7..6f6c2c9e35 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -38,6 +38,7 @@ #include "qemu_security.h" #include "qemu_slirp.h" #include "qemu_block.h" +#include "qemu_tpm.h" #include "domain_audit.h" #include "virlog.h" diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index dc09c94a4d..40bf4847e3 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -954,6 +954,26 @@ qemuTPMEmulatorStart(virQEMUDriver *driver, } +bool +qemuTPMHasSharedStorage(virDomainDef *def) +{ + size_t i; + + for (i = 0; i < def->ntpms; i++) { + virDomainTPMDef *tpm = def->tpms[i]; + + switch (tpm->type) { + case VIR_DOMAIN_TPM_TYPE_EMULATOR: + return virFileIsSharedFS(tpm->data.emulator.storagepath) == 1; + case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: + case VIR_DOMAIN_TPM_TYPE_LAST: + } + } + + return false; +} + + /* --------------------- * Module entry points * --------------------- diff --git a/src/qemu/qemu_tpm.h b/src/qemu/qemu_tpm.h index f068f3ca5a..d98f47b318 100644 --- a/src/qemu/qemu_tpm.h +++ b/src/qemu/qemu_tpm.h @@ -56,3 +56,7 @@ int qemuExtTPMSetupCgroup(virQEMUDriver *driver, virCgroup *cgroup) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3) G_GNUC_WARN_UNUSED_RESULT; + +bool qemuTPMHasSharedStorage(virDomainDef *def) + ATTRIBUTE_NONNULL(1) + G_GNUC_WARN_UNUSED_RESULT;