From: Osier Yang Date: Wed, 14 Mar 2012 15:26:54 +0000 (+0800) Subject: qemu: Update domain state to pmsuspended while suspend event occurs X-Git-Tag: v0.9.11-rc1~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=321fa64bf52a6fe4407e33dde14fc333dbc1d76d;p=thirdparty%2Flibvirt.git qemu: Update domain state to pmsuspended while suspend event occurs --- diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 37a786c1f7..2e873ecb8f 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -1092,6 +1092,19 @@ qemuProcessHandlePMSuspend(qemuMonitorPtr mon ATTRIBUTE_UNUSED, virDomainObjLock(vm); event = virDomainEventPMSuspendNewFromObj(vm); + if (virDomainObjGetState(vm, NULL) == VIR_DOMAIN_RUNNING) { + VIR_DEBUG("Transitioned guest %s to pmsuspended state due to " + "QMP suspend event", vm->def->name); + + virDomainObjSetState(vm, VIR_DOMAIN_PMSUSPENDED, + VIR_DOMAIN_PMSUSPENDED_UNKNOWN); + + if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) { + VIR_WARN("Unable to save status on vm %s after suspend event", + vm->def->name); + } + } + virDomainObjUnlock(vm); if (event) {