From 25fe3cf8990b654fd568f580b8885102b3f92789 Mon Sep 17 00:00:00 2001 Message-Id: <25fe3cf8990b654fd568f580b8885102b3f92789@dist-git> From: Jiri Denemark Date: Thu, 21 Jul 2022 15:00:28 +0200 Subject: [PATCH] qemu_migration: Use EnterMonitorAsync in qemuDomainGetMigrationBlockers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The code is run with an async job and thus needs to make sure a nested job is acquired before entering the monitor. While touching the code in qemuMigrationSrcIsAllowed I also fixed the grammar which was accidentally broken by v8.5.0-140-g2103807e33. Signed-off-by: Jiri Denemark Reviewed-by: Michal Privoznik (cherry picked from commit 62627524607f214e724a48fcac575737f49a271c) Resolves: https://bugzilla.redhat.com/2092833 Signed-off-by: Eugenio PĂ©rez --- src/qemu/qemu_migration.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_migration.c b/src/qemu/qemu_migration.c index 2f77e45abf..735eb02673 100644 --- a/src/qemu/qemu_migration.c +++ b/src/qemu/qemu_migration.c @@ -1418,12 +1418,15 @@ qemuMigrationSrcIsAllowedHostdev(const virDomainDef *def) static int qemuDomainGetMigrationBlockers(virQEMUDriver *driver, virDomainObj *vm, + int asyncJob, char ***blockers) { qemuDomainObjPrivate *priv = vm->privateData; int rc; - qemuDomainObjEnterMonitor(driver, vm); + if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + return -1; + rc = qemuMonitorGetMigrationBlockers(priv->mon, blockers); qemuDomainObjExitMonitor(vm); @@ -1458,10 +1461,12 @@ qemuMigrationSrcIsAllowed(virQEMUDriver *driver, bool blockedReasonsCap = virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_BLOCKED_REASONS); - /* Ask qemu if it have a migration blocker */ + /* Ask qemu if it has a migration blocker */ if (blockedReasonsCap) { g_auto(GStrv) blockers = NULL; - if (qemuDomainGetMigrationBlockers(driver, vm, &blockers) < 0) + if (qemuDomainGetMigrationBlockers(driver, vm, + VIR_ASYNC_JOB_MIGRATION_OUT, + &blockers) < 0) return false; if (blockers && blockers[0]) { -- 2.35.1