From 120ea1c5b97ebea122896ac8d0aadd6bfdcda0c7 Mon Sep 17 00:00:00 2001 From: Sergey Fionov Date: Tue, 12 Mar 2013 21:06:12 +0400 Subject: [PATCH] qemu: save domain state to XML after reboot Currently qemuDomainReboot() does reboot in two phases: qemuMonitorSystemPowerdown() and qemuProcessFakeReboot(). qemuMonitorSystemPowerdown() shutdowns the domain and saves domain state/reason as VIR_DOMAIN_SHUTDOWN_UNKNOWN. qemuProcessFakeReboot() sets domain state/reason to VIR_DOMAIN_RESUMED_UNPAUSED but does not save domain state changes. Subsequent restart of libvirt leads to restoring domain state/reason to saved that is VIR_DOMAIN_SHUTDOWN_UNKNOWN and to automatic shutdown of the domain. This commit adds virDomainSaveStatus() to qemuProcessFakeReboot() to avoid unexpected shutdowns. --- src/qemu/qemu_process.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index a2ce007..cfb0ad1 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -602,6 +602,11 @@ qemuProcessFakeReboot(void *opaque) VIR_DOMAIN_EVENT_RESUMED, VIR_DOMAIN_EVENT_RESUMED_UNPAUSED); + if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) { + VIR_WARN("Unable to save status on vm %s after state change", + vm->def->name); + } + ret = 0; endjob: -- 1.7.10.4