From 321fa64bf52a6fe4407e33dde14fc333dbc1d76d Mon Sep 17 00:00:00 2001 From: Osier Yang Date: Wed, 14 Mar 2012 23:26:54 +0800 Subject: [PATCH] qemu: Update domain state to pmsuspended while suspend event occurs --- src/qemu/qemu_process.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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) { -- 2.39.5