Currently, 'info' will always report that mem = max mem. Make sure we
actually return the correct mem value.
Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
---
src/qemu_driver.c | 24 +++++++++++++++---------
1 files changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index d3eb3ad..4e3e531 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -2553,16 +2553,22 @@ static int qemudDomainGetInfo(virDomainPtr dom,
}
}
- err = qemudDomainGetMemoryBalloon(dom->conn, vm, &balloon);
- if (err < 0)
- goto cleanup;
-
info->maxMem = vm->def->maxmem;
- if (err == 0)
- /* Balloon not supported, so maxmem is always the allocation */
- info->memory = vm->def->maxmem;
- else
- info->memory = balloon;
+
+ if (virDomainIsActive(vm)) {
+ err = qemudDomainGetMemoryBalloon(dom->conn, vm, &balloon);
+ if (err < 0)
+ goto cleanup;
+
+ if (err == 0)
+ /* Balloon not supported, so maxmem is always the allocation */
+ info->memory = vm->def->maxmem;
+ else
+ info->memory = balloon;
+ } else {
+ info->memory = vm->def->memory;
+ }
+
info->nrVirtCpu = vm->def->vcpus;
ret = 0;
--
1.6.0.6