]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: tpm: Introduce qemuTPMHasSharedStorage()
authorStefan Berger <stefanb@linux.ibm.com>
Mon, 24 Oct 2022 10:28:43 +0000 (06:28 -0400)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 9 Nov 2022 11:26:24 +0000 (12:26 +0100)
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 <stefanb@linux.ibm.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_migration.c
src/qemu/qemu_tpm.c
src/qemu/qemu_tpm.h

index 615b3178e7c9740e80c15b3d5a4c26fe78c4db76..6f6c2c9e35ba9dda8ca8e0ef8952bfedd1244cfe 100644 (file)
@@ -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"
index dc09c94a4da74ac230fe44420cc8a8860f27a6aa..40bf4847e3e1aced14280fdbc93fe8c7cc43dad7 100644 (file)
@@ -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
  * ---------------------
index f068f3ca5a326cff5c033b78f4ee8a9db0ce6946..d98f47b31806dc3f9f02f22d338f0297414bf84a 100644 (file)
@@ -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;