From: Daniel P. Berrange Date: Mon, 4 Jul 2011 11:11:56 +0000 (+0100) Subject: Add missing cleanup for transient guests in UML driver X-Git-Tag: v0.9.4-rc1~225 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=65d68f62f13890f78b058283c6aef691e524aa2d;p=thirdparty%2Flibvirt.git 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 --- 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: