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 to v1:
- change order of live and config modifications - do the live modification first
---
src/qemu/qemu_driver.c | 26 +++++++++-----------------
1 files changed, 9 insertions(+), 17 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c9e047e..b283c8c 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3463,33 +3463,25 @@ 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)
persistentDef->vcpus = 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)
--
1.7.3.4