[libvirt] [PATCH] Release VM lock before acquiring virDomainObjListPtr lock

Daniel P. Berrange berrange at redhat.com
Mon Feb 11 16:46:53 UTC 2013


From: "Daniel P. Berrange" <berrange at redhat.com>

When removing a VM from the virDomainObjListPtr, we must not
be holding the VM lock while acquiring the list lock. Re-order
code to ensure that we can release the VM lock early.
---
 src/conf/domain_conf.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5e16ddf..d92e54a 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2115,11 +2115,10 @@ void virDomainObjListRemove(virDomainObjListPtr doms,
 {
     char uuidstr[VIR_UUID_STRING_BUFLEN];
 
-    virObjectLock(doms);
     virUUIDFormat(dom->def->uuid, uuidstr);
-
     virObjectUnlock(dom);
 
+    virObjectLock(doms);
     virHashRemoveEntry(doms->objs, uuidstr);
     virObjectUnlock(doms);
 }
-- 
1.8.1




More information about the libvir-list mailing list