]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStoragePoolDef
authorJohn Ferlan <jferlan@redhat.com>
Thu, 31 Jan 2019 15:21:47 +0000 (10:21 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Tue, 12 Feb 2019 13:51:23 +0000 (08:51 -0500)
Let's make use of the auto __cleanup capabilities cleaning up any
now unnecessary goto paths.

Signed-off-by: John Ferlan <jferlan@redhat.com>
Reviewed-by: Erik Skultety <eskultet@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
src/conf/storage_conf.c
src/conf/storage_conf.h
src/conf/virstorageobj.c
src/phyp/phyp_driver.c
src/storage/storage_driver.c
src/test/test_driver.c
tests/storagebackendsheepdogtest.c
tests/storagepoolxml2xmltest.c
tests/storagevolxml2argvtest.c
tests/storagevolxml2xmltest.c

index 2b1389035e2f7ec1948b2ca763fac97ee0f929cd..9e46cf721b436c79e4e73a315b5fc0489c95333a 100644 (file)
@@ -30988,12 +30988,12 @@ int
 virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def)
 {
     virConnectPtr conn = NULL;
-    virStoragePoolDefPtr pooldef = NULL;
     virStoragePoolPtr pool = NULL;
     virStorageVolPtr vol = NULL;
     char *poolxml = NULL;
     virStorageVolInfo info;
     int ret = -1;
+    VIR_AUTOPTR(virStoragePoolDef) pooldef = NULL;
 
     if (def->src->type != VIR_STORAGE_TYPE_VOLUME)
         return 0;
@@ -31152,7 +31152,6 @@ virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def)
     virObjectUnref(pool);
     virObjectUnref(vol);
     VIR_FREE(poolxml);
-    virStoragePoolDefFree(pooldef);
     return ret;
 }
 
index 4a52b1497b34ca9cf18585c027374ef64d9adbcf..177ea63076a69219e521ff1874cb5e59ecb80be0 100644 (file)
@@ -737,12 +737,12 @@ virStoragePoolDefPtr
 virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
 {
     virStoragePoolOptionsPtr options;
-    virStoragePoolDefPtr def;
     virStoragePoolDefPtr ret = NULL;
     xmlNodePtr source_node;
     char *type = NULL;
     char *uuid = NULL;
     char *target_path = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) def = NULL;
 
     if (VIR_ALLOC(def) < 0)
         return NULL;
@@ -883,7 +883,6 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt)
 
     VIR_STEAL_PTR(ret, def);
  cleanup:
-    virStoragePoolDefFree(def);
     VIR_FREE(uuid);
     VIR_FREE(type);
     VIR_FREE(target_path);
index b8e73864c4ef455574a0e83a4780526ab0e9cca2..daf6f9b68c01b69af9444601f4ba18a0ac8d9b17 100644 (file)
@@ -461,6 +461,7 @@ VIR_ENUM_DECL(virStoragePartedFs);
                  VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_POOL_TYPE)
 
 VIR_DEFINE_AUTOPTR_FUNC(virStoragePoolSource, virStoragePoolSourceFree);
+VIR_DEFINE_AUTOPTR_FUNC(virStoragePoolDef, virStoragePoolDefFree);
 VIR_DEFINE_AUTOPTR_FUNC(virStorageVolDef, virStorageVolDefFree);
 
 #endif /* LIBVIRT_STORAGE_CONF_H */
index 7005de3c245952cdcd9c0d9db40e272d7eea35e4..2286857acf2a3c2a8513d4f09f2a0c41cbadc481 100644 (file)
@@ -1579,8 +1579,8 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pools,
                       const char *path,
                       const char *autostartLink)
 {
-    virStoragePoolDefPtr def;
     virStoragePoolObjPtr obj;
+    VIR_AUTOPTR(virStoragePoolDef) def = NULL;
 
     if (!(def = virStoragePoolDefParseFile(path)))
         return NULL;
@@ -1590,14 +1590,12 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pools,
                        _("Storage pool config filename '%s' does "
                          "not match pool name '%s'"),
                        path, def->name);
-        virStoragePoolDefFree(def);
         return NULL;
     }
 
-    if (!(obj = virStoragePoolObjAssignDef(pools, def, false))) {
-        virStoragePoolDefFree(def);
+    if (!(obj = virStoragePoolObjAssignDef(pools, def, false)))
         return NULL;
-    }
+    def = NULL;
 
     VIR_FREE(obj->configFile);  /* for driver reload */
     if (VIR_STRDUP(obj->configFile, path) < 0) {
@@ -1625,39 +1623,40 @@ virStoragePoolObjLoadState(virStoragePoolObjListPtr pools,
                            const char *name)
 {
     char *stateFile = NULL;
-    virStoragePoolDefPtr def = NULL;
     virStoragePoolObjPtr obj = NULL;
     xmlDocPtr xml = NULL;
     xmlXPathContextPtr ctxt = NULL;
     xmlNodePtr node = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) def = NULL;
 
     if (!(stateFile = virFileBuildPath(stateDir, name, ".xml")))
-        goto error;
+        return NULL;
 
     if (!(xml = virXMLParseCtxt(stateFile, NULL, _("(pool state)"), &ctxt)))
-        goto error;
+        goto cleanup;
 
     if (!(node = virXPathNode("//pool", ctxt))) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("Could not find any 'pool' element in state file"));
-        goto error;
+        goto cleanup;
     }
 
     ctxt->node = node;
     if (!(def = virStoragePoolDefParseXML(ctxt)))
-        goto error;
+        goto cleanup;
 
     if (STRNEQ(name, def->name)) {
         virReportError(VIR_ERR_INTERNAL_ERROR,
                        _("Storage pool state file '%s' does not match "
                          "pool name '%s'"),
                        stateFile, def->name);
-        goto error;
+        goto cleanup;
     }
 
     /* create the object */
     if (!(obj = virStoragePoolObjAssignDef(pools, def, true)))
-        goto error;
+        goto cleanup;
+    def = NULL;
 
     /* XXX: future handling of some additional useful status data,
      * for now, if a status file for a pool exists, the pool will be marked
@@ -1671,10 +1670,6 @@ virStoragePoolObjLoadState(virStoragePoolObjListPtr pools,
     xmlFreeDoc(xml);
     xmlXPathFreeContext(ctxt);
     return obj;
-
- error:
-    virStoragePoolDefFree(def);
-    goto cleanup;
 }
 
 
index 6e2fff8ac23e8309b2c18979a653282afc9f1e8d..dc082b1d0846aeb11511b7331fb40fe8b550916e 100644 (file)
@@ -1952,11 +1952,11 @@ phypStorageVolCreateXML(virStoragePoolPtr pool,
 {
     virCheckFlags(0, NULL);
 
-    virStoragePoolDefPtr spdef = NULL;
     virStorageVolPtr vol = NULL;
     virStorageVolPtr dup_vol = NULL;
     char *key = NULL;
     VIR_AUTOPTR(virStorageVolDef) voldef = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) spdef = NULL;
 
     if (VIR_ALLOC(spdef) < 0)
         return NULL;
@@ -2031,13 +2031,11 @@ phypStorageVolCreateXML(virStoragePoolPtr pool,
         goto err;
 
     VIR_FREE(key);
-    virStoragePoolDefFree(spdef);
 
     return vol;
 
  err:
     VIR_FREE(key);
-    virStoragePoolDefFree(spdef);
     virObjectUnref(vol);
     return NULL;
 }
index c50a8ef5d4e46857f8c4d12e63457c2430c1f2b1..c684f444751198ffc50dc29372aff1467f26a365 100644 (file)
@@ -690,7 +690,6 @@ storagePoolCreateXML(virConnectPtr conn,
                      const char *xml,
                      unsigned int flags)
 {
-    virStoragePoolDefPtr newDef;
     virStoragePoolObjPtr obj = NULL;
     virStoragePoolDefPtr def;
     virStoragePoolPtr pool = NULL;
@@ -698,6 +697,7 @@ storagePoolCreateXML(virConnectPtr conn,
     virObjectEventPtr event = NULL;
     char *stateFile = NULL;
     unsigned int build_flags = 0;
+    VIR_AUTOPTR(virStoragePoolDef) newDef = NULL;
 
     virCheckFlags(VIR_STORAGE_POOL_CREATE_WITH_BUILD |
                   VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE |
@@ -762,7 +762,6 @@ storagePoolCreateXML(virConnectPtr conn,
 
  cleanup:
     VIR_FREE(stateFile);
-    virStoragePoolDefFree(newDef);
     virObjectEventStateQueue(driver->storageEventState, event);
     virStoragePoolObjEndAPI(&obj);
     return pool;
@@ -779,11 +778,11 @@ storagePoolDefineXML(virConnectPtr conn,
                      const char *xml,
                      unsigned int flags)
 {
-    virStoragePoolDefPtr newDef;
     virStoragePoolObjPtr obj = NULL;
     virStoragePoolDefPtr def;
     virStoragePoolPtr pool = NULL;
     virObjectEventPtr event = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) newDef = NULL;
 
     virCheckFlags(0, NULL);
 
@@ -822,7 +821,6 @@ storagePoolDefineXML(virConnectPtr conn,
 
  cleanup:
     virObjectEventStateQueue(driver->storageEventState, event);
-    virStoragePoolDefFree(newDef);
     virStoragePoolObjEndAPI(&obj);
     return pool;
 }
index af264e6d168fc87d1d0a14f4ff4ee49f1b7677ac..bc53382f5e718e99dbaeb7e7048e6761f3b7b0e3 100644 (file)
@@ -4472,11 +4472,11 @@ testStoragePoolCreateXML(virConnectPtr conn,
                          unsigned int flags)
 {
     testDriverPtr privconn = conn->privateData;
-    virStoragePoolDefPtr newDef;
     virStoragePoolObjPtr obj = NULL;
     virStoragePoolDefPtr def;
     virStoragePoolPtr pool = NULL;
     virObjectEventPtr event = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) newDef = NULL;
 
     virCheckFlags(0, NULL);
 
@@ -4525,7 +4525,6 @@ testStoragePoolCreateXML(virConnectPtr conn,
     pool = virGetStoragePool(conn, def->name, def->uuid, NULL, NULL);
 
  cleanup:
-    virStoragePoolDefFree(newDef);
     virObjectEventStateQueue(privconn->eventState, event);
     virStoragePoolObjEndAPI(&obj);
     virObjectUnlock(privconn);
@@ -4539,11 +4538,11 @@ testStoragePoolDefineXML(virConnectPtr conn,
                          unsigned int flags)
 {
     testDriverPtr privconn = conn->privateData;
-    virStoragePoolDefPtr newDef;
     virStoragePoolObjPtr obj = NULL;
     virStoragePoolDefPtr def;
     virStoragePoolPtr pool = NULL;
     virObjectEventPtr event = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) newDef = NULL;
 
     virCheckFlags(0, NULL);
 
@@ -4574,7 +4573,6 @@ testStoragePoolDefineXML(virConnectPtr conn,
     pool = virGetStoragePool(conn, def->name, def->uuid, NULL, NULL);
 
  cleanup:
-    virStoragePoolDefFree(newDef);
     virObjectEventStateQueue(privconn->eventState, event);
     virStoragePoolObjEndAPI(&obj);
     virObjectUnlock(privconn);
index 540f89c3ab32223007f4f501ba51bf031bf917a2..03ddf76d658fd25f64a044ae78bde4a65b7c5ca0 100644 (file)
@@ -59,7 +59,7 @@ test_node_info_parser(const void *opaque)
     collie_test test = data->data;
     int ret = -1;
     char *output = NULL;
-    virStoragePoolDefPtr pool = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) pool = NULL;
 
     if (!(pool = virStoragePoolDefParseFile(data->poolxml)))
         goto cleanup;
@@ -82,7 +82,6 @@ test_node_info_parser(const void *opaque)
 
  cleanup:
     VIR_FREE(output);
-    virStoragePoolDefFree(pool);
     return ret;
 }
 
@@ -93,7 +92,7 @@ test_vdi_list_parser(const void *opaque)
     collie_test test = data->data;
     int ret = -1;
     char *output = NULL;
-    virStoragePoolDefPtr pool = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) pool = NULL;
     VIR_AUTOPTR(virStorageVolDef) vol = NULL;
 
     if (!(pool = virStoragePoolDefParseFile(data->poolxml)))
@@ -120,7 +119,6 @@ test_vdi_list_parser(const void *opaque)
 
  cleanup:
     VIR_FREE(output);
-    virStoragePoolDefFree(pool);
     return ret;
 }
 
index acb15f3a2c1efbd733664f7d324df612adcbe28a..c8d5c41cd4a251e7fadc80d9d8cf8966dbd25578 100644 (file)
@@ -20,7 +20,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *outxml)
 {
     char *actual = NULL;
     int ret = -1;
-    virStoragePoolDefPtr dev = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) dev = NULL;
 
     if (!(dev = virStoragePoolDefParseFile(inxml)))
         goto fail;
@@ -35,7 +35,6 @@ testCompareXMLToXMLFiles(const char *inxml, const char *outxml)
 
  fail:
     VIR_FREE(actual);
-    virStoragePoolDefFree(dev);
     return ret;
 }
 
index 4c98decc4dc138625d0465ccaec68a4f71ad7942..edff8d847760e33639325656cbe99c676ec44d0b 100644 (file)
@@ -49,10 +49,10 @@ testCompareXMLToArgvFiles(bool shouldFail,
     virCommandPtr cmd = NULL;
 
     virStoragePoolDefPtr def = NULL;
-    virStoragePoolDefPtr inputpool = NULL;
     virStoragePoolObjPtr obj = NULL;
     VIR_AUTOPTR(virStorageVolDef) vol = NULL;
     VIR_AUTOPTR(virStorageVolDef) inputvol = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) inputpool = NULL;
 
     if (!(def = virStoragePoolDefParseFile(poolxml)))
         goto cleanup;
@@ -139,7 +139,6 @@ testCompareXMLToArgvFiles(bool shouldFail,
     ret = 0;
 
  cleanup:
-    virStoragePoolDefFree(inputpool);
     virCommandFree(cmd);
     VIR_FREE(actualCmdline);
     virStoragePoolObjEndAPI(&obj);
index 95e205a0ab2bbb3d6158a3e03567bda3e2617017..cb78bd5b289678f087bec85cb54e115d8285873b 100644 (file)
@@ -19,7 +19,7 @@ testCompareXMLToXMLFiles(const char *poolxml, const char *inxml,
 {
     char *actual = NULL;
     int ret = -1;
-    virStoragePoolDefPtr pool = NULL;
+    VIR_AUTOPTR(virStoragePoolDef) pool = NULL;
     VIR_AUTOPTR(virStorageVolDef) dev = NULL;
 
     if (!(pool = virStoragePoolDefParseFile(poolxml)))
@@ -38,7 +38,6 @@ testCompareXMLToXMLFiles(const char *poolxml, const char *inxml,
 
  fail:
     VIR_FREE(actual);
-    virStoragePoolDefFree(pool);
     return ret;
 }