mirror of https://gitee.com/openkylin/libvirt.git
qemu: Reuse virDomainObjGetDefs in qemuDomainGetMemoryParameters
Simplify the code by restructuring control flow and reusing the better helper.
This commit is contained in:
parent
68ba0d8a89
commit
58edccb4a5
|
@ -9936,7 +9936,6 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
|
||||||
virDomainObjPtr vm = NULL;
|
virDomainObjPtr vm = NULL;
|
||||||
virDomainDefPtr persistentDef = NULL;
|
virDomainDefPtr persistentDef = NULL;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
virCapsPtr caps = NULL;
|
|
||||||
qemuDomainObjPrivatePtr priv;
|
qemuDomainObjPrivatePtr priv;
|
||||||
virQEMUDriverConfigPtr cfg = NULL;
|
virQEMUDriverConfigPtr cfg = NULL;
|
||||||
unsigned long long swap_hard_limit, mem_hard_limit, mem_soft_limit;
|
unsigned long long swap_hard_limit, mem_hard_limit, mem_soft_limit;
|
||||||
|
@ -9945,9 +9944,6 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
|
||||||
VIR_DOMAIN_AFFECT_CONFIG |
|
VIR_DOMAIN_AFFECT_CONFIG |
|
||||||
VIR_TYPED_PARAM_STRING_OKAY, -1);
|
VIR_TYPED_PARAM_STRING_OKAY, -1);
|
||||||
|
|
||||||
/* We don't return strings, and thus trivially support this flag. */
|
|
||||||
flags &= ~VIR_TYPED_PARAM_STRING_OKAY;
|
|
||||||
|
|
||||||
if (!(vm = qemuDomObjFromDomain(dom)))
|
if (!(vm = qemuDomObjFromDomain(dom)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -9963,21 +9959,9 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(caps = virQEMUDriverGetCapabilities(driver, false)))
|
if (virDomainObjGetDefs(vm, flags, NULL, &persistentDef) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
if (virDomainLiveConfigHelperMethod(caps, driver->xmlopt, vm, &flags,
|
|
||||||
&persistentDef) < 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_AFFECT_LIVE) {
|
|
||||||
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_MEMORY)) {
|
|
||||||
virReportError(VIR_ERR_OPERATION_INVALID,
|
|
||||||
"%s", _("cgroup memory controller is not mounted"));
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((*nparams) == 0) {
|
if ((*nparams) == 0) {
|
||||||
/* Current number of memory parameters supported by cgroups */
|
/* Current number of memory parameters supported by cgroups */
|
||||||
*nparams = QEMU_NB_MEM_PARAM;
|
*nparams = QEMU_NB_MEM_PARAM;
|
||||||
|
@ -9985,11 +9969,17 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
|
if (persistentDef) {
|
||||||
mem_hard_limit = persistentDef->mem.hard_limit;
|
mem_hard_limit = persistentDef->mem.hard_limit;
|
||||||
mem_soft_limit = persistentDef->mem.soft_limit;
|
mem_soft_limit = persistentDef->mem.soft_limit;
|
||||||
swap_hard_limit = persistentDef->mem.swap_hard_limit;
|
swap_hard_limit = persistentDef->mem.swap_hard_limit;
|
||||||
} else {
|
} else {
|
||||||
|
if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_MEMORY)) {
|
||||||
|
virReportError(VIR_ERR_OPERATION_INVALID,
|
||||||
|
"%s", _("cgroup memory controller is not mounted"));
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
if (virCgroupGetMemoryHardLimit(priv->cgroup, &mem_hard_limit) < 0)
|
if (virCgroupGetMemoryHardLimit(priv->cgroup, &mem_hard_limit) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
|
@ -10014,7 +10004,6 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virDomainObjEndAPI(&vm);
|
virDomainObjEndAPI(&vm);
|
||||||
virObjectUnref(caps);
|
|
||||||
virObjectUnref(cfg);
|
virObjectUnref(cfg);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue