From: Jim Fehlig Date: Fri, 26 Aug 2011 18:10:25 +0000 (-0600) Subject: Save migration speed in qemuDomainMigrateSetMaxSpeed X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=8fc40c511c08143cb64ff0d212942dde8e81c279;p=libvirt.git Save migration speed in qemuDomainMigrateSetMaxSpeed Now that migration speed is stored in qemuDomainObjPrivate structure, save the new value when invoking qemuDomainMigrateSetMaxSpeed(). Allow setting migration speed on inactive domain too. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 458787d6ee..0ecd257caa 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -8848,31 +8848,25 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, return -1; } - if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) - goto cleanup; - - if (!virDomainObjIsActive(vm)) { - qemuReportError(VIR_ERR_OPERATION_INVALID, - "%s", _("domain is not running")); - goto endjob; - } - priv = vm->privateData; + if (virDomainObjIsActive(vm)) { + if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MIGRATION_OP) < 0) + goto cleanup; - if (priv->job.asyncJob != QEMU_ASYNC_JOB_MIGRATION_OUT) { - qemuReportError(VIR_ERR_OPERATION_INVALID, - "%s", _("domain is not being migrated")); - goto endjob; - } + VIR_DEBUG("Setting migration bandwidth to %luMbs", bandwidth); + qemuDomainObjEnterMonitor(driver, vm); + ret = qemuMonitorSetMigrationSpeed(priv->mon, bandwidth); + qemuDomainObjExitMonitor(driver, vm); - VIR_DEBUG("Setting migration bandwidth to %luMbs", bandwidth); - qemuDomainObjEnterMonitor(driver, vm); - ret = qemuMonitorSetMigrationSpeed(priv->mon, bandwidth); - qemuDomainObjExitMonitor(driver, vm); + if (ret == 0) + priv->migMaxBandwidth = bandwidth; -endjob: - if (qemuDomainObjEndJob(driver, vm) == 0) - vm = NULL; + if (qemuDomainObjEndJob(driver, vm) == 0) + vm = NULL; + } else { + priv->migMaxBandwidth = bandwidth; + ret = 0; + } cleanup: if (vm)