From: Jiri Denemark Date: Wed, 5 Oct 2011 14:07:36 +0000 (+0200) Subject: qemu: Don't fail virDomainGetInfo if we can't update balloon info X-Git-Tag: v0.9.7-rc1~196 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcd2bd55d714b8e939c5bfd44fd2ddc32a09c141;p=thirdparty%2Flibvirt.git qemu: Don't fail virDomainGetInfo if we can't update balloon info Qemu driver tries to update balloon data in virDomainGetInfo and if it can't do so because there is another monitor job running, it just reports what's known in domain def. However, if there was no job running but getting the data from qemu fails, we would fail the whole API. This doesn't make sense. Let's make the failure nonfatal. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index dc34e1d422..276dc060bf 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2083,13 +2083,18 @@ static int qemudDomainGetInfo(virDomainPtr dom, goto cleanup; } - if (err < 0) - goto cleanup; - if (err == 0) + if (err < 0) { + /* We couldn't get current memory allocation but that's not + * a show stopper; we wouldn't get it if there was a job + * active either + */ + info->memory = vm->def->mem.cur_balloon; + } else if (err == 0) { /* Balloon not supported, so maxmem is always the allocation */ info->memory = vm->def->mem.max_balloon; - else + } else { info->memory = balloon; + } } else { info->memory = vm->def->mem.cur_balloon; }