From: Peter Krempa Date: Mon, 7 May 2012 11:53:20 +0000 (+0200) Subject: qemu: Refactor qemuDomainSetVcpusFlags X-Git-Tag: v0.9.12~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e99ad93d028cf7a63fb9ffd7a620dc00b0d54fce;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. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index c9e047e062..538dc25958 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3463,8 +3463,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) @@ -3472,24 +3476,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)