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)
This commit is contained in:
Peter Krempa 2012-05-07 13:53:20 +02:00 committed by Cole Robinson
parent 48b9eb2d55
commit a0be049f67

View File

@ -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;
}
if (virDomainSaveConfig(driver->configDir, persistentDef) < 0)
goto endjob;
}
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;
}
/* Save the persistent config to disk */
if (flags & VIR_DOMAIN_AFFECT_CONFIG)
ret = virDomainSaveConfig(driver->configDir, persistentDef);
endjob:
if (qemuDomainObjEndJob(driver, vm) == 0)