]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
network_conf: Introduce locked versions of lookup functions
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 4 Mar 2015 12:28:07 +0000 (13:28 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 11 Mar 2015 15:58:48 +0000 (16:58 +0100)
This is going to be needed later, when some functions already
have the virNetworkObjList object already locked and need to
lookup a object to work on. As an example of such function is
virNetworkAssignDef(). The other use case might be in
virNetworkObjListForEach() callback.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/network_conf.c
src/conf/network_conf.h
src/libvirt_private.syms

index 1ea5d0fa0883a4db7f313a7ed6f8466881d48427..08b610cf3a687a5da0286e6440397541e7f43212 100644 (file)
@@ -157,8 +157,9 @@ virNetworkObjListPtr virNetworkObjListNew(void)
     return nets;
 }
 
-virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
-                                         const unsigned char *uuid)
+virNetworkObjPtr
+virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
+                              const unsigned char *uuid)
 {
     virNetworkObjPtr ret = NULL;
     char uuidstr[VIR_UUID_STRING_BUFLEN];
@@ -171,6 +172,18 @@ virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
     return ret;
 }
 
+virNetworkObjPtr
+virNetworkObjFindByUUID(virNetworkObjListPtr nets,
+                        const unsigned char *uuid)
+{
+    virNetworkObjPtr ret;
+
+    virObjectLock(nets);
+    ret = virNetworkObjFindByUUIDLocked(nets, uuid);
+    virObjectUnlock(nets);
+    return ret;
+}
+
 static int
 virNetworkObjSearchName(const void *payload,
                         const void *name ATTRIBUTE_UNUSED,
@@ -186,8 +199,9 @@ virNetworkObjSearchName(const void *payload,
     return want;
 }
 
-virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
-                                         const char *name)
+virNetworkObjPtr
+virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
+                              const char *name)
 {
     virNetworkObjPtr ret = NULL;
 
@@ -197,6 +211,18 @@ virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
     return ret;
 }
 
+virNetworkObjPtr
+virNetworkObjFindByName(virNetworkObjListPtr nets,
+                        const char *name)
+{
+    virNetworkObjPtr ret;
+
+    virObjectLock(nets);
+    ret = virNetworkObjFindByNameLocked(nets, name);
+    virObjectUnlock(nets);
+    return ret;
+}
+
 bool
 virNetworkObjTaint(virNetworkObjPtr obj,
                    virNetworkTaintFlags taint)
index e0ed7143416fe9d71d7f67e2b8583d21d419ad56..3e926f78c59326a4ddbd8edda80afc346d45b7f9 100644 (file)
@@ -300,8 +300,12 @@ virNetworkObjIsActive(const virNetworkObj *net)
 
 virNetworkObjListPtr virNetworkObjListNew(void);
 
+virNetworkObjPtr virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
+                                               const unsigned char *uuid);
 virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
                                          const unsigned char *uuid);
+virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
+                                               const char *name);
 virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
                                          const char *name);
 bool virNetworkObjTaint(virNetworkObjPtr obj,
index 5fbe094da2fa5703245dd3697c88d44417d2c731..64808ce9f4fcdc6526b575ca452e0247d4358668 100644 (file)
@@ -565,7 +565,9 @@ virNetworkLoadAllState;
 virNetworkObjAssignDef;
 virNetworkObjEndAPI;
 virNetworkObjFindByName;
+virNetworkObjFindByNameLocked;
 virNetworkObjFindByUUID;
+virNetworkObjFindByUUIDLocked;
 virNetworkObjGetPersistentDef;
 virNetworkObjIsDuplicate;
 virNetworkObjListExport;