- esxConnectListAllDomains: Don't propagate failure to lookup a single domain (RHEL-80606) - conf: parse interface/source/@dev for all interface types (with backend type='passt') (RHEL-82539) - libvirt-host: Clarify/fix description of the CPU frequency field (RHEL-86197) - virNodeGetInfo: Improve description of the case when fake data is reported (RHEL-86197) - manpages: virsh: Use disclaimer from 'virNodeGetInfo()' for 'virsh nodeinfo' (RHEL-86197) - esx: Accept empty "path" URI component same way as "/" (RHEL-86459) - qemu: Rename outgoingMigration parameter in various TPM functions (RHEL-86800) - qemu: Properly propagate migration state to TPM cleanup code (RHEL-86800) - qemuDomainBlockCopyCommon: Don't revoke access to file twice on failure (RHEL-7357) - qemuxmlconftest: Drop s390-default-cpu-...ccw-virtio-2.7 test cases (RHEL-72976) - tests: add capabilities for QEMU 10.0.0 on s390x (RHEL-72976) - qemu: Do NOT autoadd NUMA node for s390 (RHEL-72976) - qemu_command: Use qemuBuildVirtioDevProps() to build cmd line for virtio-mem and virtio-pmem (RHEL-72976) - qemuxmlconftest: Introduce memory-hotplug-virtio-mem-pci-s390x.xml (RHEL-72976) - qemu_caps: Introduce QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW (RHEL-72976) - qemu: Validate virtio-mem-ccw (RHEL-72976) - qemu: Allow virtio-mem on CCW (RHEL-72976) - qemuxmlconftest: Introduce memory-hotplug-virtio-mem-ccw-s390x.xml (RHEL-72976) - qemu_domain_address: fix CCW virtio-mem hotplug (RHEL-72976) Resolves: RHEL-72976, RHEL-7357, RHEL-80606, RHEL-82539, RHEL-86197 Resolves: RHEL-86459, RHEL-86800
231 lines
8.8 KiB
Diff
231 lines
8.8 KiB
Diff
From c28859cbaeac298adbe957956cf8442c9a6b7264 Mon Sep 17 00:00:00 2001
|
|
Message-ID: <c28859cbaeac298adbe957956cf8442c9a6b7264.1744876588.git.jdenemar@redhat.com>
|
|
From: Jiri Denemark <jdenemar@redhat.com>
|
|
Date: Tue, 11 Mar 2025 10:05:28 +0100
|
|
Subject: [PATCH] qemu: Rename outgoingMigration parameter in various TPM
|
|
functions
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
The parameter is used to skip TPM state cleanup on outgoing migration
|
|
with shared storage. But we also need to skip the cleanup after a failed
|
|
incoming migration. Let's call the parameter "migration" to reflect its
|
|
usage on both sides of migration.
|
|
|
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
(cherry picked from commit a5e4ca6f02dc8250f84163a0d19b69300affde43)
|
|
|
|
https://issues.redhat.com/browse/RHEL-86800
|
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
---
|
|
src/qemu/qemu_domain.c | 8 ++++----
|
|
src/qemu/qemu_domain.h | 2 +-
|
|
src/qemu/qemu_extdevice.c | 8 ++++----
|
|
src/qemu/qemu_extdevice.h | 4 ++--
|
|
src/qemu/qemu_tpm.c | 19 +++++++++----------
|
|
src/qemu/qemu_tpm.h | 4 ++--
|
|
6 files changed, 22 insertions(+), 23 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
|
|
index 1ccaff90d9..89e1b50366 100644
|
|
--- a/src/qemu/qemu_domain.c
|
|
+++ b/src/qemu/qemu_domain.c
|
|
@@ -5749,7 +5749,7 @@ static void
|
|
qemuDomainRemoveInactiveCommon(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
|
g_autofree char *snapDir = NULL;
|
|
@@ -5775,7 +5775,7 @@ qemuDomainRemoveInactiveCommon(virQEMUDriver *driver,
|
|
if (rmdir(chkDir) < 0 && errno != ENOENT)
|
|
VIR_WARN("unable to remove checkpoint directory %s", chkDir);
|
|
}
|
|
- qemuExtDevicesCleanupHost(driver, vm->def, flags, outgoingMigration);
|
|
+ qemuExtDevicesCleanupHost(driver, vm->def, flags, migration);
|
|
}
|
|
|
|
|
|
@@ -5788,14 +5788,14 @@ void
|
|
qemuDomainRemoveInactive(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
if (vm->persistent) {
|
|
/* Short-circuit, we don't want to remove a persistent domain */
|
|
return;
|
|
}
|
|
|
|
- qemuDomainRemoveInactiveCommon(driver, vm, flags, outgoingMigration);
|
|
+ qemuDomainRemoveInactiveCommon(driver, vm, flags, migration);
|
|
|
|
virDomainObjListRemove(driver->domains, vm);
|
|
}
|
|
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
|
|
index e810f79599..6246988491 100644
|
|
--- a/src/qemu/qemu_domain.h
|
|
+++ b/src/qemu/qemu_domain.h
|
|
@@ -689,7 +689,7 @@ int qemuDomainMomentDiscardAll(void *payload,
|
|
void qemuDomainRemoveInactive(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration);
|
|
+ bool migration);
|
|
|
|
void
|
|
qemuDomainRemoveInactiveLocked(virQEMUDriver *driver,
|
|
diff --git a/src/qemu/qemu_extdevice.c b/src/qemu/qemu_extdevice.c
|
|
index 2384bab7a6..7451e0fa03 100644
|
|
--- a/src/qemu/qemu_extdevice.c
|
|
+++ b/src/qemu/qemu_extdevice.c
|
|
@@ -154,7 +154,7 @@ void
|
|
qemuExtDevicesCleanupHost(virQEMUDriver *driver,
|
|
virDomainDef *def,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
size_t i;
|
|
|
|
@@ -165,7 +165,7 @@ qemuExtDevicesCleanupHost(virQEMUDriver *driver,
|
|
virDomainTPMDef *tpm = def->tpms[i];
|
|
|
|
if (tpm->type == VIR_DOMAIN_TPM_TYPE_EMULATOR)
|
|
- qemuExtTPMCleanupHost(driver, tpm, flags, outgoingMigration);
|
|
+ qemuExtTPMCleanupHost(driver, tpm, flags, migration);
|
|
}
|
|
}
|
|
|
|
@@ -266,7 +266,7 @@ qemuExtDevicesStart(virQEMUDriver *driver,
|
|
void
|
|
qemuExtDevicesStop(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
virDomainDef *def = vm->def;
|
|
size_t i;
|
|
@@ -283,7 +283,7 @@ qemuExtDevicesStop(virQEMUDriver *driver,
|
|
|
|
for (i = 0; i < def->ntpms; i++) {
|
|
if (def->tpms[i]->type == VIR_DOMAIN_TPM_TYPE_EMULATOR)
|
|
- qemuExtTPMStop(driver, vm, outgoingMigration);
|
|
+ qemuExtTPMStop(driver, vm, migration);
|
|
}
|
|
|
|
for (i = 0; i < def->nnets; i++) {
|
|
diff --git a/src/qemu/qemu_extdevice.h b/src/qemu/qemu_extdevice.h
|
|
index d4ac9f395c..36f7fb77a8 100644
|
|
--- a/src/qemu/qemu_extdevice.h
|
|
+++ b/src/qemu/qemu_extdevice.h
|
|
@@ -48,7 +48,7 @@ int qemuExtDevicesPrepareHost(virQEMUDriver *driver,
|
|
void qemuExtDevicesCleanupHost(virQEMUDriver *driver,
|
|
virDomainDef *def,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
|
int qemuExtDevicesStart(virQEMUDriver *driver,
|
|
@@ -59,7 +59,7 @@ int qemuExtDevicesStart(virQEMUDriver *driver,
|
|
|
|
void qemuExtDevicesStop(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
|
bool qemuExtDevicesHasDevice(virDomainDef *def);
|
|
diff --git a/src/qemu/qemu_tpm.c b/src/qemu/qemu_tpm.c
|
|
index f5e0184e54..f910a26286 100644
|
|
--- a/src/qemu/qemu_tpm.c
|
|
+++ b/src/qemu/qemu_tpm.c
|
|
@@ -907,7 +907,8 @@ qemuTPMEmulatorInitPaths(virDomainTPMDef *tpm,
|
|
* @driver: QEMU driver
|
|
* @tpm: TPM definition
|
|
* @flags: flags indicating whether to keep or remove TPM persistent state
|
|
- * @outgoingMigration: whether cleanup is due to an outgoing migration
|
|
+ * @migration: whether cleanup is due to a successful outgoing or failed
|
|
+ * incoming migration
|
|
*
|
|
* Clean up persistent storage for the swtpm.
|
|
*/
|
|
@@ -915,14 +916,12 @@ static void
|
|
qemuTPMEmulatorCleanupHost(virQEMUDriver *driver,
|
|
virDomainTPMDef *tpm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
|
|
|
- /* Never remove the state in case of outgoing migration with shared
|
|
- * storage.
|
|
- */
|
|
- if (outgoingMigration &&
|
|
+ /* Never remove the state in case of migration with shared storage. */
|
|
+ if (migration &&
|
|
virFileIsSharedFS(tpm->data.emulator.source_path, cfg->sharedFilesystems) == 1)
|
|
return;
|
|
|
|
@@ -1293,9 +1292,9 @@ void
|
|
qemuExtTPMCleanupHost(virQEMUDriver *driver,
|
|
virDomainTPMDef *tpm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
- qemuTPMEmulatorCleanupHost(driver, tpm, flags, outgoingMigration);
|
|
+ qemuTPMEmulatorCleanupHost(driver, tpm, flags, migration);
|
|
}
|
|
|
|
|
|
@@ -1319,7 +1318,7 @@ qemuExtTPMStart(virQEMUDriver *driver,
|
|
void
|
|
qemuExtTPMStop(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
{
|
|
g_autoptr(virQEMUDriverConfig) cfg = virQEMUDriverGetConfig(driver);
|
|
g_autofree char *shortName = virDomainDefGetShortName(vm->def);
|
|
@@ -1329,7 +1328,7 @@ qemuExtTPMStop(virQEMUDriver *driver,
|
|
return;
|
|
|
|
qemuTPMEmulatorStop(cfg->swtpmStateDir, shortName);
|
|
- if (outgoingMigration && qemuTPMHasSharedStorage(driver, vm->def))
|
|
+ if (migration && qemuTPMHasSharedStorage(driver, vm->def))
|
|
restoreTPMStateLabel = false;
|
|
|
|
if (qemuSecurityRestoreTPMLabels(driver, vm, restoreTPMStateLabel, false) < 0)
|
|
diff --git a/src/qemu/qemu_tpm.h b/src/qemu/qemu_tpm.h
|
|
index 7096060a2a..37813087cf 100644
|
|
--- a/src/qemu/qemu_tpm.h
|
|
+++ b/src/qemu/qemu_tpm.h
|
|
@@ -38,7 +38,7 @@ int qemuExtTPMPrepareHost(virQEMUDriver *driver,
|
|
void qemuExtTPMCleanupHost(virQEMUDriver *driver,
|
|
virDomainTPMDef *tpm,
|
|
virDomainUndefineFlagsValues flags,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
|
int qemuExtTPMStart(virQEMUDriver *driver,
|
|
@@ -52,7 +52,7 @@ int qemuExtTPMStart(virQEMUDriver *driver,
|
|
|
|
void qemuExtTPMStop(virQEMUDriver *driver,
|
|
virDomainObj *vm,
|
|
- bool outgoingMigration)
|
|
+ bool migration)
|
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
|
|
|
int qemuExtTPMSetupCgroup(virQEMUDriver *driver,
|
|
--
|
|
2.49.0
|