From 65d68f62f13890f78b058283c6aef691e524aa2d Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Mon, 4 Jul 2011 12:11:56 +0100 Subject: [PATCH] Add missing cleanup for transient guests in UML driver The UML inotify handler would kill off guests when certain conditions arise, but it forgot to remove transient guests from the list of domains * src/uml/uml_driver.c: Cleanup transient guests --- src/uml/uml_driver.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 8189d67773..10cd5543bc 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -311,6 +311,11 @@ reread: umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_SHUTDOWN); virDomainAuditStop(dom, "shutdown"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } else if (e->mask & (IN_CREATE | IN_MODIFY)) { VIR_DEBUG("Got inotify domain startup '%s'", name); if (virDomainObjIsActive(dom)) { @@ -332,14 +337,25 @@ reread: umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_FAILED); virDomainAuditStop(dom, "failed"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } else if (umlIdentifyChrPTY(driver, dom) < 0) { - VIR_WARN("Could not identify charater devices for new domain"); + VIR_WARN("Could not identify character devices for new domain"); umlShutdownVMDaemon(NULL, driver, dom, VIR_DOMAIN_SHUTOFF_FAILED); virDomainAuditStop(dom, "failed"); + if (!dom->persistent) { + virDomainRemoveInactive(&driver->domains, + dom); + dom = NULL; + } } } - virDomainObjUnlock(dom); + if (dom) + virDomainObjUnlock(dom); } cleanup: