]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
network_conf: Introduce virNetworkObjEndAPI
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 25 Feb 2015 15:49:19 +0000 (16:49 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 11 Mar 2015 15:58:48 +0000 (16:58 +0100)
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: Michal Privoznik <mprivozn@redhat.com>
src/conf/network_conf.c
src/conf/network_conf.h
src/libvirt_private.syms

index 625a1c4b7ac9384965a231a1a1866885411106de..517788fbdc220659b4720c0d2817126fbb9e42ca 100644 (file)
@@ -129,6 +129,16 @@ virNetworkObjNew(void)
     return NULL;
 }
 
+void
+virNetworkObjEndAPI(virNetworkObjPtr *net)
+{
+    if (!*net)
+        return;
+
+    virObjectUnlock(*net);
+    *net = NULL;
+}
+
 virNetworkObjListPtr virNetworkObjListNew(void)
 {
     virNetworkObjListPtr nets;
@@ -3034,8 +3044,8 @@ virNetworkLoadAllState(virNetworkObjListPtr nets,
         if (!virFileStripSuffix(entry->d_name, ".xml"))
             continue;
 
-        if ((net = virNetworkLoadState(nets, stateDir, entry->d_name)))
-            virObjectUnlock(net);
+        net = virNetworkLoadState(nets, stateDir, entry->d_name);
+        virNetworkObjEndAPI(&net);
     }
 
     closedir(dir);
@@ -3075,8 +3085,7 @@ int virNetworkLoadAllConfigs(virNetworkObjListPtr nets,
                                    configDir,
                                    autostartDir,
                                    entry->d_name);
-        if (net)
-            virObjectUnlock(net);
+        virNetworkObjEndAPI(&net);
     }
 
     closedir(dir);
@@ -4260,8 +4269,7 @@ virNetworkObjIsDuplicate(virNetworkObjListPtr nets,
     }
 
  cleanup:
-    if (net)
-        virObjectUnlock(net);
+    virNetworkObjEndAPI(&net);
     return ret;
 }
 
index 1423676a515e533516afb04e2c4d40316f2bf186..e0ed7143416fe9d71d7f67e2b8583d21d419ad56 100644 (file)
@@ -276,6 +276,7 @@ struct _virNetworkObj {
 };
 
 virNetworkObjPtr virNetworkObjNew(void);
+void virNetworkObjEndAPI(virNetworkObjPtr *net);
 
 typedef struct _virNetworkObjList virNetworkObjList;
 typedef virNetworkObjList *virNetworkObjListPtr;
index 5e78cf780483912f1a46ed673dde4528346142b2..5fbe094da2fa5703245dd3697c88d44417d2c731 100644 (file)
@@ -563,6 +563,7 @@ virNetworkIpDefPrefix;
 virNetworkLoadAllConfigs;
 virNetworkLoadAllState;
 virNetworkObjAssignDef;
+virNetworkObjEndAPI;
 virNetworkObjFindByName;
 virNetworkObjFindByUUID;
 virNetworkObjGetPersistentDef;