提交 8db9610f 编写于 作者: P Peter Krempa

qemu: Refactor qemuDomainSetBlkioParameters by reusing virDomainObjGetDefs

上级 6200d86d
...@@ -9201,10 +9201,10 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9201,10 +9201,10 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
virQEMUDriverPtr driver = dom->conn->privateData; virQEMUDriverPtr driver = dom->conn->privateData;
size_t i; size_t i;
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
virDomainDefPtr persistentDef = NULL; virDomainDefPtr def;
virDomainDefPtr persistentDef;
int ret = -1; int ret = -1;
virQEMUDriverConfigPtr cfg = NULL; virQEMUDriverConfigPtr cfg = NULL;
virCapsPtr caps = NULL;
qemuDomainObjPrivatePtr priv; qemuDomainObjPrivatePtr priv;
virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | virCheckFlags(VIR_DOMAIN_AFFECT_LIVE |
...@@ -9240,14 +9240,10 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9240,14 +9240,10 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
goto cleanup; goto cleanup;
} }
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
goto cleanup;
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0) if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_MODIFY) < 0)
goto cleanup; goto cleanup;
if (virDomainLiveConfigHelperMethod(caps, driver->xmlopt, vm, &flags, if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0)
&persistentDef) < 0)
goto endjob; goto endjob;
if (flags & VIR_DOMAIN_AFFECT_LIVE) { if (flags & VIR_DOMAIN_AFFECT_LIVE) {
...@@ -9259,7 +9255,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9259,7 +9255,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
} }
ret = 0; ret = 0;
if (flags & VIR_DOMAIN_AFFECT_LIVE) { if (def) {
for (i = 0; i < nparams; i++) { for (i = 0; i < nparams; i++) {
virTypedParameterPtr param = &params[i]; virTypedParameterPtr param = &params[i];
...@@ -9339,8 +9335,8 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9339,8 +9335,8 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
} }
if (j != ndevices || if (j != ndevices ||
qemuDomainMergeBlkioDevice(&vm->def->blkio.devices, qemuDomainMergeBlkioDevice(&def->blkio.devices,
&vm->def->blkio.ndevices, &def->blkio.ndevices,
devices, ndevices, param->field) < 0) devices, ndevices, param->field) < 0)
ret = -1; ret = -1;
virBlkioDeviceArrayClear(devices, ndevices); virBlkioDeviceArrayClear(devices, ndevices);
...@@ -9353,10 +9349,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9353,10 +9349,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
} }
if (ret < 0) if (ret < 0)
goto endjob; goto endjob;
if (flags & VIR_DOMAIN_AFFECT_CONFIG) { if (persistentDef) {
/* Clang can't see that if we get here, persistentDef was set. */
sa_assert(persistentDef);
for (i = 0; i < nparams; i++) { for (i = 0; i < nparams; i++) {
virTypedParameterPtr param = &params[i]; virTypedParameterPtr param = &params[i];
...@@ -9395,7 +9388,6 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, ...@@ -9395,7 +9388,6 @@ qemuDomainSetBlkioParameters(virDomainPtr dom,
cleanup: cleanup:
virDomainObjEndAPI(&vm); virDomainObjEndAPI(&vm);
virObjectUnref(caps);
virObjectUnref(cfg); virObjectUnref(cfg);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册