提交 3aa3e072 编写于 作者: M Michal Privoznik

network_conf: Introduce locked versions of lookup functions

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: NMichal Privoznik <mprivozn@redhat.com>
上级 52430928
...@@ -157,8 +157,9 @@ virNetworkObjListPtr virNetworkObjListNew(void) ...@@ -157,8 +157,9 @@ virNetworkObjListPtr virNetworkObjListNew(void)
return nets; return nets;
} }
virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets, virNetworkObjPtr
const unsigned char *uuid) virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
const unsigned char *uuid)
{ {
virNetworkObjPtr ret = NULL; virNetworkObjPtr ret = NULL;
char uuidstr[VIR_UUID_STRING_BUFLEN]; char uuidstr[VIR_UUID_STRING_BUFLEN];
...@@ -171,6 +172,18 @@ virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets, ...@@ -171,6 +172,18 @@ virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
return ret; return ret;
} }
virNetworkObjPtr
virNetworkObjFindByUUID(virNetworkObjListPtr nets,
const unsigned char *uuid)
{
virNetworkObjPtr ret;
virObjectLock(nets);
ret = virNetworkObjFindByUUIDLocked(nets, uuid);
virObjectUnlock(nets);
return ret;
}
static int static int
virNetworkObjSearchName(const void *payload, virNetworkObjSearchName(const void *payload,
const void *name ATTRIBUTE_UNUSED, const void *name ATTRIBUTE_UNUSED,
...@@ -186,8 +199,9 @@ virNetworkObjSearchName(const void *payload, ...@@ -186,8 +199,9 @@ virNetworkObjSearchName(const void *payload,
return want; return want;
} }
virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets, virNetworkObjPtr
const char *name) virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
const char *name)
{ {
virNetworkObjPtr ret = NULL; virNetworkObjPtr ret = NULL;
...@@ -197,6 +211,18 @@ virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets, ...@@ -197,6 +211,18 @@ virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
return ret; return ret;
} }
virNetworkObjPtr
virNetworkObjFindByName(virNetworkObjListPtr nets,
const char *name)
{
virNetworkObjPtr ret;
virObjectLock(nets);
ret = virNetworkObjFindByNameLocked(nets, name);
virObjectUnlock(nets);
return ret;
}
bool bool
virNetworkObjTaint(virNetworkObjPtr obj, virNetworkObjTaint(virNetworkObjPtr obj,
virNetworkTaintFlags taint) virNetworkTaintFlags taint)
......
...@@ -300,8 +300,12 @@ virNetworkObjIsActive(const virNetworkObj *net) ...@@ -300,8 +300,12 @@ virNetworkObjIsActive(const virNetworkObj *net)
virNetworkObjListPtr virNetworkObjListNew(void); virNetworkObjListPtr virNetworkObjListNew(void);
virNetworkObjPtr virNetworkObjFindByUUIDLocked(virNetworkObjListPtr nets,
const unsigned char *uuid);
virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets, virNetworkObjPtr virNetworkObjFindByUUID(virNetworkObjListPtr nets,
const unsigned char *uuid); const unsigned char *uuid);
virNetworkObjPtr virNetworkObjFindByNameLocked(virNetworkObjListPtr nets,
const char *name);
virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets, virNetworkObjPtr virNetworkObjFindByName(virNetworkObjListPtr nets,
const char *name); const char *name);
bool virNetworkObjTaint(virNetworkObjPtr obj, bool virNetworkObjTaint(virNetworkObjPtr obj,
......
...@@ -565,7 +565,9 @@ virNetworkLoadAllState; ...@@ -565,7 +565,9 @@ virNetworkLoadAllState;
virNetworkObjAssignDef; virNetworkObjAssignDef;
virNetworkObjEndAPI; virNetworkObjEndAPI;
virNetworkObjFindByName; virNetworkObjFindByName;
virNetworkObjFindByNameLocked;
virNetworkObjFindByUUID; virNetworkObjFindByUUID;
virNetworkObjFindByUUIDLocked;
virNetworkObjGetPersistentDef; virNetworkObjGetPersistentDef;
virNetworkObjIsDuplicate; virNetworkObjIsDuplicate;
virNetworkObjListExport; virNetworkObjListExport;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册