---
src/qemu/qemu_conf.h|5 --
src/qemu/qemu_driver.c |5 --
src/qemu/qemu_process.c | 107 ++
3 files changed, 24 insertions(+), 93 deletions(-)
diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
index a22ce0c..3306014 100644
--- a/src/qemu/qemu_conf.h
+++ b/src/qemu/qemu_conf.h
@@ -141,11 +141,6 @@ struct qemud_driver {
virLockManagerPluginPtr lockManager;
-/* Mapping of 'char *uuidstr' - virConnectPtr
- * of guests which will be automatically killed
- * when the virConnectPtr is closed*/
-virHashTablePtr autodestroy;
-
/* Mapping of 'char *uuidstr' - qemuDriverCloseDefPtr of domains
* which want a specific cleanup to be done when a connection is
* closed. Such cleanup may be to automatically destroy the
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index ce82535..3a5ef09 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -659,9 +659,6 @@ qemudStartup(int privileged) {
qemu_driver-hugepage_path = mempath;
}
-if (qemuProcessAutoDestroyInit(qemu_driver) 0)
-goto error;
-
if (qemuDriverCloseCallbackInit(qemu_driver) 0)
goto error;
@@ -803,7 +800,6 @@ qemudShutdown(void) {
virSysinfoDefFree(qemu_driver-hostsysinfo);
-qemuProcessAutoDestroyShutdown(qemu_driver);
qemuDriverCloseCallbackShutdown(qemu_driver);
VIR_FREE(qemu_driver-configDir);
@@ -925,7 +921,6 @@ static int qemudClose(virConnectPtr conn) {
qemuDriverLock(driver);
virDomainEventStateDeregisterConn(conn,
driver-domainEventState);
-qemuProcessAutoDestroyRun(driver, conn);
qemuDriverCloseCallbackRunAll(driver, conn);
qemuDriverUnlock(driver);
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 1945864..8915a9a 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -4120,124 +4120,65 @@ cleanup:
}
-int qemuProcessAutoDestroyInit(struct qemud_driver *driver)
+static virDomainObjPtr
+qemuProcessAutoDestroy(struct qemud_driver *driver,
+ virDomainObjPtr dom,
+ virConnectPtr conn)
{
-if (!(driver-autodestroy = virHashCreate(5, NULL)))
-return -1;
-
-return 0;
-}
-
-struct qemuProcessAutoDestroyData {
-struct qemud_driver *driver;
-virConnectPtr conn;
-};
-
-static void qemuProcessAutoDestroyDom(void *payload,
- const void *name,
- void *opaque)
-{
-struct qemuProcessAutoDestroyData *data = opaque;
-virConnectPtr conn = payload;
-const char *uuidstr = name;
-unsigned char uuid[VIR_UUID_BUFLEN];
-virDomainObjPtr dom;
-qemuDomainObjPrivatePtr priv;
+qemuDomainObjPrivatePtr priv = dom-privateData;
virDomainEventPtr event = NULL;
-VIR_DEBUG(conn=%p uuidstr=%s thisconn=%p, conn, uuidstr, data-conn);
+VIR_DEBUG(vm=%s, conn=%p, dom-def-name, conn);
-if (data-conn != conn)
-return;
-
-if (virUUIDParse(uuidstr, uuid) 0) {
-VIR_WARN(Failed to parse %s, uuidstr);
-return;
-}
-
-if (!(dom = virDomainFindByUUID(data-driver-domains,
-uuid))) {
-VIR_DEBUG(No domain object to kill);
-return;
-}
-
-priv = dom-privateData;
if (priv-job.asyncJob) {
VIR_DEBUG(vm=%s has long-term job active, cancelling,
dom-def-name);
-qemuDomainObjDiscardAsyncJob(data-driver, dom);
+qemuDomainObjDiscardAsyncJob(driver, dom);
}
-if (qemuDomainObjBeginJobWithDriver(data-driver, dom,
+if (qemuDomainObjBeginJobWithDriver(driver, dom,
QEMU_JOB_DESTROY) 0)
goto cleanup;
VIR_DEBUG(Killing domain);
-qemuProcessStop(data-driver, dom, 1, VIR_DOMAIN_SHUTOFF_DESTROYED);
+qemuProcessStop(driver, dom, 1, VIR_DOMAIN_SHUTOFF_DESTROYED);
virDomainAuditStop(dom, destroyed);
event = virDomainEventNewFromObj(dom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
-if (qemuDomainObjEndJob(data-driver, dom) == 0)
+
+if (qemuDomainObjEndJob(driver, dom) == 0)
dom = NULL;
if (dom !dom-persistent)
-qemuDomainRemoveInactive(data-driver, dom);
-
-cleanup:
-if (dom)
-virDomainObjUnlock(dom);
+qemuDomainRemoveInactive(driver, dom);
if (event)
-qemuDomainEventQueue(data-driver, event);
-virHashRemoveEntry(data-driver-autodestroy, uuidstr);
-}
-
-/*
- * Precondition: driver is locked
- */
-void qemuProcessAutoDestroyRun(struct qemud_driver *driver, virConnectPtr conn)
-{
-struct qemuProcessAutoDestroyData data = {
-driver, conn
-};
-VIR_DEBUG(conn=%p, conn);
-virHashForEach(driver-autodestroy,