On Wed, Mar 14, 2012 at 11:26:50PM +0800, Osier Yang wrote:
With this patch, libvirt won't start the guest with the medium
source which already ejected by guest when doing migration, or
saving/restoring.
---
src/qemu/qemu_process.c | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index b6e14ad..7511d4e 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1038,6 +1038,16 @@ qemuProcessHandleTrayChange(qemuMonitorPtr mon ATTRIBUTE_UNUSED,
event = virDomainEventTrayChangeNewFromObj(vm,
devAlias,
reason);
+ /* Update disk tray status */
+ if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN)
+ disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
+ else if (reason == VIR_DOMAIN_EVENT_TRAY_CHANGE_CLOSE)
+ disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
+
+ if (virDomainSaveStatus(driver->caps, driver->stateDir, vm) < 0) {
+ VIR_WARN("Unable to save status on vm %s after tray moved event",
+ vm->def->name);
+ }
}
virDomainObjUnlock(vm);
ACK,
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/