From 54e969c5388689cd9032918ef8e78168d5aee1a1 Mon Sep 17 00:00:00 2001 From: Jiri Denemark Date: Mon, 4 Feb 2019 16:52:05 +0100 Subject: [PATCH] qemu: Rework qemuDomainMigrateSetMaxSpeed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Let's make the code flow easier to follow and get rid of the ugly endjob label inside if branch. Signed-off-by: Jiri Denemark Reviewed-by: Ján Tomko --- src/qemu/qemu_driver.c | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 4084673cdb..0c0ed4fab9 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14275,6 +14275,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, virQEMUDriverPtr driver = dom->conn->privateData; virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; + int rc; int ret = -1; virCheckFlags(0, -1); @@ -14294,29 +14295,31 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, goto cleanup; } - if (virDomainObjIsActive(vm)) { - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) - goto cleanup; - - if (virDomainObjCheckActive(vm) < 0) - goto endjob; - - VIR_DEBUG("Setting migration bandwidth to %luMbs", bandwidth); - qemuDomainObjEnterMonitor(driver, vm); - ret = qemuMonitorSetMigrationSpeed(priv->mon, bandwidth); - if (qemuDomainObjExitMonitor(driver, vm) < 0) - ret = -1; - - if (ret == 0) - priv->migMaxBandwidth = bandwidth; - - endjob: - qemuDomainObjEndJob(driver, vm); - } else { + if (!virDomainObjIsActive(vm)) { priv->migMaxBandwidth = bandwidth; ret = 0; + goto cleanup; } + if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + goto cleanup; + + if (virDomainObjCheckActive(vm) < 0) + goto endjob; + + VIR_DEBUG("Setting migration bandwidth to %luMbs", bandwidth); + qemuDomainObjEnterMonitor(driver, vm); + rc = qemuMonitorSetMigrationSpeed(priv->mon, bandwidth); + if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0) + goto endjob; + + priv->migMaxBandwidth = bandwidth; + + ret = 0; + + endjob: + qemuDomainObjEndJob(driver, vm); + cleanup: virDomainObjEndAPI(&vm); return ret;