提交 aa7c7f88 编写于 作者: M Michal Privoznik

network_conf: Introduce virNetworkObjEndAPI

This is practically copy of qemuDomObjEndAPI. The reason why is
it so widely available is to avoid code duplication, since the
function is going to be called from our bridge driver, test
driver and parallels driver too.
Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
上级 ea570491
...@@ -129,6 +129,16 @@ virNetworkObjNew(void) ...@@ -129,6 +129,16 @@ virNetworkObjNew(void)
return NULL; return NULL;
} }
void
virNetworkObjEndAPI(virNetworkObjPtr *net)
{
if (!*net)
return;
virObjectUnlock(*net);
*net = NULL;
}
virNetworkObjListPtr virNetworkObjListNew(void) virNetworkObjListPtr virNetworkObjListNew(void)
{ {
virNetworkObjListPtr nets; virNetworkObjListPtr nets;
...@@ -3034,8 +3044,8 @@ virNetworkLoadAllState(virNetworkObjListPtr nets, ...@@ -3034,8 +3044,8 @@ virNetworkLoadAllState(virNetworkObjListPtr nets,
if (!virFileStripSuffix(entry->d_name, ".xml")) if (!virFileStripSuffix(entry->d_name, ".xml"))
continue; continue;
if ((net = virNetworkLoadState(nets, stateDir, entry->d_name))) net = virNetworkLoadState(nets, stateDir, entry->d_name);
virObjectUnlock(net); virNetworkObjEndAPI(&net);
} }
closedir(dir); closedir(dir);
...@@ -3075,8 +3085,7 @@ int virNetworkLoadAllConfigs(virNetworkObjListPtr nets, ...@@ -3075,8 +3085,7 @@ int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
configDir, configDir,
autostartDir, autostartDir,
entry->d_name); entry->d_name);
if (net) virNetworkObjEndAPI(&net);
virObjectUnlock(net);
} }
closedir(dir); closedir(dir);
...@@ -4260,8 +4269,7 @@ virNetworkObjIsDuplicate(virNetworkObjListPtr nets, ...@@ -4260,8 +4269,7 @@ virNetworkObjIsDuplicate(virNetworkObjListPtr nets,
} }
cleanup: cleanup:
if (net) virNetworkObjEndAPI(&net);
virObjectUnlock(net);
return ret; return ret;
} }
......
...@@ -276,6 +276,7 @@ struct _virNetworkObj { ...@@ -276,6 +276,7 @@ struct _virNetworkObj {
}; };
virNetworkObjPtr virNetworkObjNew(void); virNetworkObjPtr virNetworkObjNew(void);
void virNetworkObjEndAPI(virNetworkObjPtr *net);
typedef struct _virNetworkObjList virNetworkObjList; typedef struct _virNetworkObjList virNetworkObjList;
typedef virNetworkObjList *virNetworkObjListPtr; typedef virNetworkObjList *virNetworkObjListPtr;
......
...@@ -563,6 +563,7 @@ virNetworkIpDefPrefix; ...@@ -563,6 +563,7 @@ virNetworkIpDefPrefix;
virNetworkLoadAllConfigs; virNetworkLoadAllConfigs;
virNetworkLoadAllState; virNetworkLoadAllState;
virNetworkObjAssignDef; virNetworkObjAssignDef;
virNetworkObjEndAPI;
virNetworkObjFindByName; virNetworkObjFindByName;
virNetworkObjFindByUUID; virNetworkObjFindByUUID;
virNetworkObjGetPersistentDef; virNetworkObjGetPersistentDef;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册