44 lines
1.8 KiB
Diff
44 lines
1.8 KiB
Diff
From ba60a52c9d6ca7b3729ebf22bb72f6156a02b3b4 Mon Sep 17 00:00:00 2001
|
|
From: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
|
|
Date: Tue, 18 Aug 2020 11:01:40 +0300
|
|
Subject: [PATCH 071/108] qemu: fix qemuMigrationSrcCleanup to use
|
|
qemuMigrationJobFinish
|
|
|
|
qemuMigrationSrcCleanup uses qemuDomainObjDiscardAsyncJob currently. But
|
|
discard does not reduce jobs_queued counter so it leaks. Also discard does not
|
|
notify other threads that job condition is available. Discard does reset nested
|
|
job but nested job is not possible in this conditions.
|
|
|
|
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
|
|
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
|
(cherry picked from commit 7e34d9a9e076ea0bd550268ad4830f53a8466f3e)
|
|
---
|
|
src/qemu/qemu_migration.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c
|
|
index 32be433e93..c461156075 100644
|
|
--- a/src/qemu/qemu_migration.c
|
|
+++ b/src/qemu/qemu_migration.c
|
|
@@ -2022,7 +2022,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm,
|
|
switch ((qemuMigrationJobPhase) priv->job.phase) {
|
|
case QEMU_MIGRATION_PHASE_BEGIN3:
|
|
/* just forget we were about to migrate */
|
|
- qemuDomainObjDiscardAsyncJob(driver, vm);
|
|
+ qemuMigrationJobFinish(driver, vm);
|
|
break;
|
|
|
|
case QEMU_MIGRATION_PHASE_PERFORM3_DONE:
|
|
@@ -2032,7 +2032,7 @@ qemuMigrationSrcCleanup(virDomainObjPtr vm,
|
|
qemuMigrationParamsReset(driver, vm, QEMU_ASYNC_JOB_MIGRATION_OUT,
|
|
priv->job.migParams, priv->job.apiFlags);
|
|
/* clear the job and let higher levels decide what to do */
|
|
- qemuDomainObjDiscardAsyncJob(driver, vm);
|
|
+ qemuMigrationJobFinish(driver, vm);
|
|
break;
|
|
|
|
case QEMU_MIGRATION_PHASE_PERFORM3:
|
|
--
|
|
2.33.0
|
|
|