[libvirt] [PATCH 06/11] Replace virStoragePoolFree with virObjectUnref

John Ferlan jferlan at redhat.com
Mon Dec 1 15:56:20 UTC 2014


Since virStoragePoolFree will call virObjectUnref anyway, let's just use that
directly so as to avoid the possibility that we inadvertently clear out
a pending error message when using the public API.

Signed-off-by: John Ferlan <jferlan at redhat.com>
---
 cfg.mk                       |  2 +-
 daemon/remote.c              |  5 ++---
 src/conf/storage_conf.c      |  6 ++----
 src/remote/remote_driver.c   |  3 +--
 src/storage/storage_driver.c | 11 +----------
 5 files changed, 7 insertions(+), 20 deletions(-)

diff --git a/cfg.mk b/cfg.mk
index 5da7b22..4766f0b 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -992,7 +992,7 @@ sc_prohibit_system_error_with_vir_err:
 # functions. There's a corresponding exclude to allow usage within tests,
 # docs, examples, tools, src/libvirt-*.c, and include/libvirt/libvirt-*.h
 sc_prohibit_virXXXFree:
-	@prohibit='\bvir(Domain|Network|NodeDevice|StorageVol)Free\b'	\
+	@prohibit='\bvir(Domain|Network|NodeDevice|StorageVol|StoragePool)Free\b'	\
 	exclude='sc_prohibit_virXXXFree' \
 	halt='avoid using 'virXXXFree', use 'virObjectUnref' instead' \
 	  $(_sc_search_regexp)
diff --git a/daemon/remote.c b/daemon/remote.c
index 644f10e..fe1b13c 100644
--- a/daemon/remote.c
+++ b/daemon/remote.c
@@ -4665,7 +4665,7 @@ remoteDispatchConnectListAllStoragePools(virNetServerPtr server ATTRIBUTE_UNUSED
         virNetMessageSaveError(rerr);
     if (pools && npools > 0) {
         for (i = 0; i < npools; i++)
-            virStoragePoolFree(pools[i]);
+            virObjectUnref(pools[i]);
         VIR_FREE(pools);
     }
     return rv;
@@ -4731,8 +4731,7 @@ remoteDispatchStoragePoolListAllVolumes(virNetServerPtr server ATTRIBUTE_UNUSED,
             virObjectUnref(vols[i]);
         VIR_FREE(vols);
     }
-    if (pool)
-        virStoragePoolFree(pool);
+    virObjectUnref(pool);
     return rv;
 }
 
diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c
index f75e862..3987470 100644
--- a/src/conf/storage_conf.c
+++ b/src/conf/storage_conf.c
@@ -2523,10 +2523,8 @@ virStoragePoolObjListExport(virConnectPtr conn,
 
  cleanup:
     if (tmp_pools) {
-        for (i = 0; i < npools; i++) {
-            if (tmp_pools[i])
-                virStoragePoolFree(tmp_pools[i]);
-        }
+        for (i = 0; i < npools; i++)
+            virObjectUnref(tmp_pools[i]);
     }
 
     VIR_FREE(tmp_pools);
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c
index b89984e..830e1d4 100644
--- a/src/remote/remote_driver.c
+++ b/src/remote/remote_driver.c
@@ -3682,8 +3682,7 @@ remoteConnectListAllStoragePools(virConnectPtr conn,
  cleanup:
     if (tmp_pools) {
         for (i = 0; i < ret.pools.pools_len; i++)
-            if (tmp_pools[i])
-                virStoragePoolFree(tmp_pools[i]);
+            virObjectUnref(tmp_pools[i]);
         VIR_FREE(tmp_pools);
     }
 
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index 0fcbc4e..99ccb49 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -3006,7 +3006,6 @@ virStorageTranslateDiskSourcePool(virConnectPtr conn,
     char *poolxml = NULL;
     virStorageVolInfo info;
     int ret = -1;
-    virErrorPtr savedError = NULL;
 
     if (def->src->type != VIR_STORAGE_TYPE_VOLUME)
         return 0;
@@ -3142,16 +3141,8 @@ virStorageTranslateDiskSourcePool(virConnectPtr conn,
 
     ret = 0;
  cleanup:
-    if (ret < 0)
-        savedError = virSaveLastError();
-    if (pool)
-        virStoragePoolFree(pool);
+    virObjectUnref(pool);
     virObjectUnref(vol);
-    if (savedError) {
-        virSetError(savedError);
-        virFreeError(savedError);
-    }
-
     VIR_FREE(poolxml);
     virStoragePoolDefFree(pooldef);
     return ret;
-- 
1.9.3




More information about the libvir-list mailing list