
On Thu, 2009-09-24 at 16:00 +0100, Daniel P. Berrange wrote:
* src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h: Add new qemuMonitorSetBalloon() based on existing code in qemudDomainSetMemoryBalloon * src/qemu/qemu_driver.c: Remove use of qemudDomainSetMemoryBalloon() in favour of qemuMonitorSetBalloon(). Fix error code when balloon is not supported --- src/qemu/qemu_driver.c | 56 ++++------------------------------------- src/qemu/qemu_monitor_text.c | 47 +++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor_text.h | 2 + 3 files changed, 55 insertions(+), 50 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8d3c9b6..a0b5e49 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c ... @@ -3066,10 +3019,13 @@ static int qemudDomainSetMemory(virDomainPtr dom, unsigned long newmem) { }
if (virDomainIsActive(vm)) { - ret = qemudDomainSetMemoryBalloon(dom->conn, vm, newmem); - if (ret == 0) + ret = qemuMonitorSetBalloon(vm, newmem); + /* Turn lack of balloon support into a fatal error */ + if (ret == 0) { qemudReportError(dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT, "%s", _("cannot set memory of an active domain")); + ret = -1; + }
Making this an error condition is new; would have been nice as a preceeding patch
} else { vm->def->memory = newmem; ret = 0; diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index 2a20db3..be13dce 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -551,6 +551,10 @@ error: /* The reply from QEMU contains 'ballon: actual=421' where value is in MB */ #define BALLOON_PREFIX "balloon: actual="
+/* + * Returns: 0 if balloon not supported, +1 if balloon query worked + * or -1 on failure + */ int qemuMonitorGetBalloonInfo(const virDomainObjPtr vm, unsigned long *currmem) {
Should be in previous patch ACK Cheers, Mark.