From: Peter Krempa Date: Mon, 7 May 2012 11:53:20 +0000 (+0200) Subject: qemu: Refactor qemuDomainSetVcpusFlags X-Git-Tag: v0.9.11.4~84 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a0be049f677dd4e5ea3b5658671fd5abda863134;p=thirdparty%2Flibvirt.git qemu: Refactor qemuDomainSetVcpusFlags This patch changes a switch statement into ifs when handling live vs. configuration modifications getting rid of redundant code in case when both live and persistent configuration gets changed. (cherry picked from commit e99ad93d028cf7a63fb9ffd7a620dc00b0d54fce) --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8546c2fc58..d60e098139 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3455,8 +3455,12 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, goto endjob; } - switch (flags) { - case VIR_DOMAIN_AFFECT_CONFIG: + if (flags & VIR_DOMAIN_AFFECT_LIVE) { + if (qemudDomainHotplugVcpus(driver, vm, nvcpus) < 0) + goto endjob; + } + + if (flags & VIR_DOMAIN_AFFECT_CONFIG) { if (maximum) { persistentDef->maxvcpus = nvcpus; if (nvcpus < persistentDef->vcpus) @@ -3464,24 +3468,12 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus, } else { persistentDef->vcpus = nvcpus; } - ret = 0; - break; - - case VIR_DOMAIN_AFFECT_LIVE: - ret = qemudDomainHotplugVcpus(driver, vm, nvcpus); - break; - case VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG: - ret = qemudDomainHotplugVcpus(driver, vm, nvcpus); - if (ret == 0) { - persistentDef->vcpus = nvcpus; - } - break; + if (virDomainSaveConfig(driver->configDir, persistentDef) < 0) + goto endjob; } - /* Save the persistent config to disk */ - if (flags & VIR_DOMAIN_AFFECT_CONFIG) - ret = virDomainSaveConfig(driver->configDir, persistentDef); + ret = 0; endjob: if (qemuDomainObjEndJob(driver, vm) == 0)