提交 c3e3227a 编写于 作者: D Derbyshev Dmitry 提交者: Pavel Hrdina

qemu: split qemuDomainMemoryStats into internal and external functions

Is necessary to call it from other contexts, such as qemuDomainGetStatsBalloon.
Signed-off-by: NDerbyshev Dmitry <dderbyshev@virtuozzo.com>
上级 f57fbd6c
...@@ -10973,32 +10973,21 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom, ...@@ -10973,32 +10973,21 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom,
return ret; return ret;
} }
/* This functions assumes that job QEMU_JOB_QUERY is started by a caller */
static int static int
qemuDomainMemoryStats(virDomainPtr dom, qemuDomainMemoryStatsInternal(virQEMUDriverPtr driver,
virDomainMemoryStatPtr stats, virDomainObjPtr vm,
unsigned int nr_stats, virDomainMemoryStatPtr stats,
unsigned int flags) unsigned int nr_stats)
{ {
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1; int ret = -1;
long rss; long rss;
virCheckFlags(0, -1);
if (!(vm = qemuDomObjFromDomain(dom)))
goto cleanup;
if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0)
goto cleanup;
if (!virDomainObjIsActive(vm)) { if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID, virReportError(VIR_ERR_OPERATION_INVALID,
"%s", _("domain is not running")); "%s", _("domain is not running"));
goto endjob; return -1;
} }
if (vm->def->memballoon && if (vm->def->memballoon &&
...@@ -11010,7 +10999,7 @@ qemuDomainMemoryStats(virDomainPtr dom, ...@@ -11010,7 +10999,7 @@ qemuDomainMemoryStats(virDomainPtr dom,
ret = -1; ret = -1;
if (ret < 0 || ret >= nr_stats) if (ret < 0 || ret >= nr_stats)
goto endjob; return ret;
} else { } else {
ret = 0; ret = 0;
} }
...@@ -11024,7 +11013,32 @@ qemuDomainMemoryStats(virDomainPtr dom, ...@@ -11024,7 +11013,32 @@ qemuDomainMemoryStats(virDomainPtr dom,
ret++; ret++;
} }
endjob: return ret;
}
static int
qemuDomainMemoryStats(virDomainPtr dom,
virDomainMemoryStatPtr stats,
unsigned int nr_stats,
unsigned int flags)
{
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm;
int ret = -1;
virCheckFlags(0, -1);
if (!(vm = qemuDomObjFromDomain(dom)))
goto cleanup;
if (virDomainMemoryStatsEnsureACL(dom->conn, vm->def) < 0)
goto cleanup;
if (qemuDomainObjBeginJob(driver, vm, QEMU_JOB_QUERY) < 0)
goto cleanup;
ret = qemuDomainMemoryStatsInternal(driver, vm, stats, nr_stats);
qemuDomainObjEndJob(driver, vm); qemuDomainObjEndJob(driver, vm);
cleanup: cleanup:
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册