File fe51dbda-libxl-use-FindByRef.patch of Package libvirt.11329

commit fe51dbda56b5e51e17b238210a19e3c9887a3f15
Author: John Ferlan <jferlan@redhat.com>
Date:   Fri Mar 9 11:48:00 2018 -0500

    libxl: Use virDomainObjListFindBy{UUID|ID}Ref
    
    For libxlDomainLookupByID and libxlDomainLookupByUUID let's
    return a locked and referenced @vm object so that callers can
    then use the common and more consistent virDomainObjEndAPI in
    order to handle cleanup rather than needing to know that the
    returned object is locked and calling virObjectUnlock.
    
    The LookupByName already returns the ref counted and locked object,
    so this will make things more consistent.
    
    Signed-off-by: John Ferlan <jferlan@redhat.com>
    Reviewed-by: Jim Fehlig <jfehlig@suse.com>

Index: libvirt-4.0.0/src/libxl/libxl_driver.c
===================================================================
--- libvirt-4.0.0.orig/src/libxl/libxl_driver.c
+++ libvirt-4.0.0/src/libxl/libxl_driver.c
@@ -1092,7 +1092,7 @@ libxlDomainLookupByID(virConnectPtr conn
     virDomainObjPtr vm;
     virDomainPtr dom = NULL;
 
-    vm = virDomainObjListFindByID(driver->domains, id);
+    vm = virDomainObjListFindByIDRef(driver->domains, id);
     if (!vm) {
         virReportError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
@@ -1104,8 +1104,7 @@ libxlDomainLookupByID(virConnectPtr conn
     dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id);
 
  cleanup:
-    if (vm)
-        virObjectUnlock(vm);
+    virDomainObjEndAPI(&vm);
     return dom;
 }
 
@@ -1116,7 +1115,7 @@ libxlDomainLookupByUUID(virConnectPtr co
     virDomainObjPtr vm;
     virDomainPtr dom = NULL;
 
-    vm = virDomainObjListFindByUUID(driver->domains, uuid);
+    vm = virDomainObjListFindByUUIDRef(driver->domains, uuid);
     if (!vm) {
         virReportError(VIR_ERR_NO_DOMAIN, NULL);
         goto cleanup;
@@ -1128,8 +1127,7 @@ libxlDomainLookupByUUID(virConnectPtr co
     dom = virGetDomain(conn, vm->def->name, vm->def->uuid, vm->def->id);
 
  cleanup:
-    if (vm)
-        virObjectUnlock(vm);
+    virDomainObjEndAPI(&vm);
     return dom;
 }
 
openSUSE Build Service is sponsored by