From: Stefan Berger Date: Mon, 24 Oct 2022 10:28:44 +0000 (-0400) Subject: qemu: tpm: Conditionally create storage on incoming migration X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=68103e9daf633b789428fedef56f816c92f6ee75;p=libvirt.git qemu: tpm: Conditionally create storage on incoming migration Do not create storage if the TPM state files are on shared storage and there's an incoming migration since in this case the storage directory must already exist. Also do not run swtpm_setup in this case. Signed-off-by: Stefan Berger Reviewed-by: Michal Privoznik --- diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c index 40bf4847e3..2d86e13b2a 100644 --- a/src/qemu/qemu_tpm.c +++ b/src/qemu/qemu_tpm.c @@ -556,11 +556,20 @@ qemuTPMEmulatorBuildCommand(virDomainTPMDef *tpm, int pwdfile_fd = -1; int migpwdfile_fd = -1; const unsigned char *secretuuid = NULL; + bool create_storage = true; if (!swtpm) return NULL; - if (qemuTPMEmulatorCreateStorage(tpm, &created, swtpm_user, swtpm_group) < 0) + /* Do not create storage and run swtpm_setup on incoming migration over + * shared storage + */ + if (incomingMigration && + virFileIsSharedFS(tpm->data.emulator.storagepath) == 1) + create_storage = false; + + if (create_storage && + qemuTPMEmulatorCreateStorage(tpm, &created, swtpm_user, swtpm_group) < 0) return NULL; if (tpm->data.emulator.hassecretuuid)