bugfix patches list: d677de remote: fix driver name check for libxl driver 075641 systemd: start libvirtd after firewalld iptables services 06fc99 qemuDomainCleanupRun: Actually run cleanup callbacks in reverse order 01626c virDevMapperGetTargetsImpl: quit early if device is not a devmapper target 006782 qemu: only stop external devices after the domain 42a415 qemuDomainStorageSourcePrivateDispose: Free httpcookie cc8c29 Don't require secdrivers to implement .domainMoveImageMetadata 0230e3 qemuProcessStop: Use XATTRs to restore seclabels on disks a domain is mirroring into 8fd274 qemuProcessStop: Reattach NVMe disks a domain is mirroring into 55029d security: don't fail if built without attr support a5a297 qemu: Skip pre creation of NVMe disks 2a372 Fix some wrong usage of ATTRIBUTE_NONNULL e728ff conf: Increase cpuset length limit for CPU pinning 8f58a4 virQEMUDriverConfigNew: Add slash to cfg defaultTLSx509certdir for non-embeded driver 1b22dd qemuDomainSetNumaParamsLive: set nodeset for root cgroup bdb8f2 qemu: do not add model when actual iface type is hostdev Signed-off-by: Jin Yan <jinyan12@huawei.com>
55 lines
1.8 KiB
Diff
55 lines
1.8 KiB
Diff
From 517d69d6c3935adf59fcf9ed11cb05e1dfa8a6f3 Mon Sep 17 00:00:00 2001
|
|
From: Michal Privoznik <mprivozn@redhat.com>
|
|
Date: Tue, 5 May 2020 13:45:44 +0200
|
|
Subject: [PATCH] qemuDomainCleanupRun: Actually run cleanup callbacks in
|
|
reverse order
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
We have a framework to register cleanup callbacks that are run
|
|
when a domain is shut down. The idea is to run callbacks in
|
|
reverse order than they were registered. However, looking at the
|
|
code this is not the case. Fortunately, this framework is used to
|
|
register a single callback and a single callback only -
|
|
qemuMigrationDstPrepareCleanup() - therefore there was no problem
|
|
just yet.
|
|
|
|
cherry-pick from commit: 06fc99b6ceb846b07e1cae3d82916ef50ca5f60e
|
|
|
|
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
Reviewed-by: Ján Tomko <jtomko@redhat.com>
|
|
Signed-off-by: Jin Yan <jinyan12@huawei.com>
|
|
---
|
|
src/qemu/qemu_domain.c | 8 ++------
|
|
1 file changed, 2 insertions(+), 6 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
|
|
index b1a4647..36bef67 100644
|
|
--- a/src/qemu/qemu_domain.c
|
|
+++ b/src/qemu/qemu_domain.c
|
|
@@ -11561,18 +11561,14 @@ qemuDomainCleanupRun(virQEMUDriverPtr driver,
|
|
virDomainObjPtr vm)
|
|
{
|
|
qemuDomainObjPrivatePtr priv = vm->privateData;
|
|
- size_t i;
|
|
|
|
VIR_DEBUG("driver=%p, vm=%s", driver, vm->def->name);
|
|
|
|
/* run cleanup callbacks in reverse order */
|
|
- for (i = 0; i < priv->ncleanupCallbacks; i++) {
|
|
- if (priv->cleanupCallbacks[priv->ncleanupCallbacks - (i + 1)])
|
|
- priv->cleanupCallbacks[i](driver, vm);
|
|
- }
|
|
+ while (priv->ncleanupCallbacks)
|
|
+ priv->cleanupCallbacks[--priv->ncleanupCallbacks](driver, vm);
|
|
|
|
VIR_FREE(priv->cleanupCallbacks);
|
|
- priv->ncleanupCallbacks = 0;
|
|
priv->ncleanupCallbacks_max = 0;
|
|
}
|
|
|
|
--
|
|
1.8.3.1
|
|
|