]> xenbits.xensource.com Git - libvirt.git/commitdiff
Revert hack for autodestroy in qemuProcessStop
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 28 Feb 2013 16:43:43 +0000 (16:43 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 1 Mar 2013 10:18:27 +0000 (10:18 +0000)
This reverts the hack done in

commit 568a6cda277f04ab9baaeb97490e548b7b608aa6
Author: Jiri Denemark <jdenemar@redhat.com>
Date:   Fri Feb 15 15:11:47 2013 +0100

    qemu: Avoid deadlock in autodestroy

since we now have a fix which avoids the deadlock scenario
entirely

src/qemu/qemu_conf.h
src/qemu/qemu_domain.h
src/qemu/qemu_process.c

index d547d978d28a59435ed9150d4159779c39c4a833..6bb3dee8c3e84ce0ac96a44134b6dfe6d66424e1 100644 (file)
@@ -254,10 +254,6 @@ struct qemuDomainDiskInfo {
     int io_status;
 };
 
-/*
- * To avoid a certain deadlock this callback must never call any
- * virQEMUCloseCallbacks* API.
- */
 typedef virDomainObjPtr (*virQEMUCloseCallback)(virQEMUDriverPtr driver,
                                                 virDomainObjPtr vm,
                                                 virConnectPtr conn);
index e114f89990132165ef03d7320c0f7d2bff83773a..7dbbaff4eba263588881aa92c3c3b7a0763a138a 100644 (file)
@@ -138,7 +138,6 @@ struct _qemuDomainObjPrivate {
 
     bool gotShutdown;
     bool beingDestroyed;
-    bool autoDestroyed;
     char *pidfile;
 
     int nvcpupids;
index 1b9eedec4c160f0f6b1b7a4c1237fff0d8e0e2e2..9f1507a62127108bc382b83f8b4edb59966859df 100644 (file)
@@ -4232,8 +4232,7 @@ void qemuProcessStop(virQEMUDriverPtr driver,
     qemuDomainCleanupRun(driver, vm);
 
     /* Stop autodestroy in case guest is restarted */
-    if (!priv->autoDestroyed)
-        qemuProcessAutoDestroyRemove(driver, vm);
+    qemuProcessAutoDestroyRemove(driver, vm);
 
     /* now that we know it's stopped call the hook if present */
     if (virHookPresent(VIR_HOOK_DRIVER_QEMU)) {
@@ -4614,13 +4613,8 @@ qemuProcessAutoDestroy(virQEMUDriverPtr driver,
 
     VIR_DEBUG("Killing domain");
 
-    /* We need to prevent qemuProcessStop from removing this function from
-     * closeCallbacks since that would cause a deadlock.
-     */
-    priv->autoDestroyed = true;
     qemuProcessStop(driver, dom, VIR_DOMAIN_SHUTOFF_DESTROYED,
                     VIR_QEMU_PROCESS_STOP_MIGRATED);
-    priv->autoDestroyed = false;
 
     virDomainAuditStop(dom, "destroyed");
     event = virDomainEventNewFromObj(dom,