]> xenbits.xensource.com Git - libvirt.git/commitdiff
ch_driver: Don't lock driver when looking up domains
authorMichal Privoznik <mprivozn@redhat.com>
Thu, 10 Feb 2022 14:50:34 +0000 (15:50 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 11 Feb 2022 09:47:48 +0000 (10:47 +0100)
There is no need to lock whole driver when accessing
virDomainObjList. Those APIs were specifically tailored to be
thread safe (when we were dropping QEMU driver lock). Don't
resurrect old history.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Tim Wiederhake <twiederh@redhat.com>
src/ch/ch_driver.c

index 7c3b45ca2f1e2bbd15863b24b7e9e24b18ef3e33..2ed33c3446d221fe4630c89531fbaa0776c97ece 100644 (file)
@@ -363,11 +363,9 @@ chDomainUndefine(virDomainPtr dom)
 
 static int chDomainIsActive(virDomainPtr dom)
 {
-    virCHDriver *driver = dom->conn->privateData;
     virDomainObj *vm;
     int ret = -1;
 
-    chDriverLock(driver);
     if (!(vm = virCHDomainObjFromDomain(dom)))
         goto cleanup;
 
@@ -378,7 +376,6 @@ static int chDomainIsActive(virDomainPtr dom)
 
  cleanup:
     virDomainObjEndAPI(&vm);
-    chDriverUnlock(driver);
     return ret;
 }
 
@@ -636,9 +633,7 @@ static virDomainPtr chDomainLookupByID(virConnectPtr conn,
     virDomainObj *vm;
     virDomainPtr dom = NULL;
 
-    chDriverLock(driver);
     vm = virDomainObjListFindByID(driver->domains, id);
-    chDriverUnlock(driver);
 
     if (!vm) {
         virReportError(VIR_ERR_NO_DOMAIN,
@@ -663,9 +658,7 @@ static virDomainPtr chDomainLookupByName(virConnectPtr conn,
     virDomainObj *vm;
     virDomainPtr dom = NULL;
 
-    chDriverLock(driver);
     vm = virDomainObjListFindByName(driver->domains, name);
-    chDriverUnlock(driver);
 
     if (!vm) {
         virReportError(VIR_ERR_NO_DOMAIN,
@@ -690,9 +683,7 @@ static virDomainPtr chDomainLookupByUUID(virConnectPtr conn,
     virDomainObj *vm;
     virDomainPtr dom = NULL;
 
-    chDriverLock(driver);
     vm = virDomainObjListFindByUUID(driver->domains, uuid);
-    chDriverUnlock(driver);
 
     if (!vm) {
         char uuidstr[VIR_UUID_STRING_BUFLEN];