From nobody Sun Feb 8 22:06:19 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 154965109477389.85401856612975; Fri, 8 Feb 2019 10:38:14 -0800 (PST) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 861D9C0669B5; Fri, 8 Feb 2019 18:38:12 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 517EB27067; Fri, 8 Feb 2019 18:38:12 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id E7E653F60D; Fri, 8 Feb 2019 18:38:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x18IbcUf007591 for ; Fri, 8 Feb 2019 13:37:38 -0500 Received: by smtp.corp.redhat.com (Postfix) id AC95217A65; Fri, 8 Feb 2019 18:37:38 +0000 (UTC) Received: from unknown0050b6a41c42.attlocal.net.com (ovpn-117-20.phx2.redhat.com [10.3.117.20]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5192460BE0; Fri, 8 Feb 2019 18:37:38 +0000 (UTC) From: John Ferlan To: libvir-list@redhat.com Date: Fri, 8 Feb 2019 13:37:03 -0500 Message-Id: <20190208183726.30903-10-jferlan@redhat.com> In-Reply-To: <20190208183726.30903-1-jferlan@redhat.com> References: <20190208183726.30903-1-jferlan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Erik Skultety Subject: [libvirt] [PATCH v2 09/32] conf: Introduce VIR_DEFINE_AUTOPTR_FUNC for virStoragePoolDef X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Fri, 08 Feb 2019 18:38:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Let's make use of the auto __cleanup capabilities cleaning up any now unnecessary goto paths. Signed-off-by: John Ferlan Reviewed-by: Erik Skultety Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 3 +-- src/conf/storage_conf.c | 3 +-- src/conf/storage_conf.h | 1 + src/conf/virstorageobj.c | 27 +++++++++++---------------- src/phyp/phyp_driver.c | 3 +-- src/storage/storage_driver.c | 6 ++---- src/test/test_driver.c | 6 ++---- tests/storagebackendsheepdogtest.c | 6 ++---- tests/storagepoolxml2xmltest.c | 3 +-- tests/storagevolxml2argvtest.c | 3 +-- tests/storagevolxml2xmltest.c | 3 +-- 11 files changed, 24 insertions(+), 40 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 2b1389035e..9e46cf721b 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -30988,12 +30988,12 @@ int virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def) { virConnectPtr conn =3D NULL; - virStoragePoolDefPtr pooldef =3D NULL; virStoragePoolPtr pool =3D NULL; virStorageVolPtr vol =3D NULL; char *poolxml =3D NULL; virStorageVolInfo info; int ret =3D -1; + VIR_AUTOPTR(virStoragePoolDef) pooldef =3D NULL; =20 if (def->src->type !=3D VIR_STORAGE_TYPE_VOLUME) return 0; @@ -31152,7 +31152,6 @@ virDomainDiskTranslateSourcePool(virDomainDiskDefPt= r def) virObjectUnref(pool); virObjectUnref(vol); VIR_FREE(poolxml); - virStoragePoolDefFree(pooldef); return ret; } =20 diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 4a52b1497b..177ea63076 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -737,12 +737,12 @@ virStoragePoolDefPtr virStoragePoolDefParseXML(xmlXPathContextPtr ctxt) { virStoragePoolOptionsPtr options; - virStoragePoolDefPtr def; virStoragePoolDefPtr ret =3D NULL; xmlNodePtr source_node; char *type =3D NULL; char *uuid =3D NULL; char *target_path =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) def =3D NULL; =20 if (VIR_ALLOC(def) < 0) return NULL; @@ -883,7 +883,6 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt) =20 VIR_STEAL_PTR(ret, def); cleanup: - virStoragePoolDefFree(def); VIR_FREE(uuid); VIR_FREE(type); VIR_FREE(target_path); diff --git a/src/conf/storage_conf.h b/src/conf/storage_conf.h index b8e73864c4..daf6f9b68c 100644 --- a/src/conf/storage_conf.h +++ b/src/conf/storage_conf.h @@ -461,6 +461,7 @@ VIR_ENUM_DECL(virStoragePartedFs); VIR_CONNECT_LIST_STORAGE_POOLS_FILTERS_POOL_TYPE) =20 VIR_DEFINE_AUTOPTR_FUNC(virStoragePoolSource, virStoragePoolSourceFree); +VIR_DEFINE_AUTOPTR_FUNC(virStoragePoolDef, virStoragePoolDefFree); VIR_DEFINE_AUTOPTR_FUNC(virStorageVolDef, virStorageVolDefFree); =20 #endif /* LIBVIRT_STORAGE_CONF_H */ diff --git a/src/conf/virstorageobj.c b/src/conf/virstorageobj.c index 7005de3c24..2286857acf 100644 --- a/src/conf/virstorageobj.c +++ b/src/conf/virstorageobj.c @@ -1579,8 +1579,8 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pools, const char *path, const char *autostartLink) { - virStoragePoolDefPtr def; virStoragePoolObjPtr obj; + VIR_AUTOPTR(virStoragePoolDef) def =3D NULL; =20 if (!(def =3D virStoragePoolDefParseFile(path))) return NULL; @@ -1590,14 +1590,12 @@ virStoragePoolObjLoad(virStoragePoolObjListPtr pool= s, _("Storage pool config filename '%s' does " "not match pool name '%s'"), path, def->name); - virStoragePoolDefFree(def); return NULL; } =20 - if (!(obj =3D virStoragePoolObjAssignDef(pools, def, false))) { - virStoragePoolDefFree(def); + if (!(obj =3D virStoragePoolObjAssignDef(pools, def, false))) return NULL; - } + def =3D NULL; =20 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 =3D NULL; - virStoragePoolDefPtr def =3D NULL; virStoragePoolObjPtr obj =3D NULL; xmlDocPtr xml =3D NULL; xmlXPathContextPtr ctxt =3D NULL; xmlNodePtr node =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) def =3D NULL; =20 if (!(stateFile =3D virFileBuildPath(stateDir, name, ".xml"))) - goto error; + return NULL; =20 if (!(xml =3D virXMLParseCtxt(stateFile, NULL, _("(pool state)"), &ctx= t))) - goto error; + goto cleanup; =20 if (!(node =3D virXPathNode("//pool", ctxt))) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("Could not find any 'pool' element in state file"= )); - goto error; + goto cleanup; } =20 ctxt->node =3D node; if (!(def =3D virStoragePoolDefParseXML(ctxt))) - goto error; + goto cleanup; =20 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; } =20 /* create the object */ if (!(obj =3D virStoragePoolObjAssignDef(pools, def, true))) - goto error; + goto cleanup; + def =3D NULL; =20 /* 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; } =20 =20 diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index cac5642afd..dc082b1d08 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1952,11 +1952,11 @@ phypStorageVolCreateXML(virStoragePoolPtr pool, { virCheckFlags(0, NULL); =20 - virStoragePoolDefPtr spdef =3D NULL; virStorageVolPtr vol =3D NULL; virStorageVolPtr dup_vol =3D NULL; char *key =3D NULL; VIR_AUTOPTR(virStorageVolDef) voldef =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) spdef =3D NULL; =20 if (VIR_ALLOC(spdef) < 0) return NULL; @@ -2036,7 +2036,6 @@ phypStorageVolCreateXML(virStoragePoolPtr pool, =20 err: VIR_FREE(key); - virStoragePoolDefFree(spdef); virObjectUnref(vol); return NULL; } diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index c50a8ef5d4..c684f44475 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -690,7 +690,6 @@ storagePoolCreateXML(virConnectPtr conn, const char *xml, unsigned int flags) { - virStoragePoolDefPtr newDef; virStoragePoolObjPtr obj =3D NULL; virStoragePoolDefPtr def; virStoragePoolPtr pool =3D NULL; @@ -698,6 +697,7 @@ storagePoolCreateXML(virConnectPtr conn, virObjectEventPtr event =3D NULL; char *stateFile =3D NULL; unsigned int build_flags =3D 0; + VIR_AUTOPTR(virStoragePoolDef) newDef =3D NULL; =20 virCheckFlags(VIR_STORAGE_POOL_CREATE_WITH_BUILD | VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE | @@ -762,7 +762,6 @@ storagePoolCreateXML(virConnectPtr conn, =20 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 =3D NULL; virStoragePoolDefPtr def; virStoragePoolPtr pool =3D NULL; virObjectEventPtr event =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) newDef =3D NULL; =20 virCheckFlags(0, NULL); =20 @@ -822,7 +821,6 @@ storagePoolDefineXML(virConnectPtr conn, =20 cleanup: virObjectEventStateQueue(driver->storageEventState, event); - virStoragePoolDefFree(newDef); virStoragePoolObjEndAPI(&obj); return pool; } diff --git a/src/test/test_driver.c b/src/test/test_driver.c index f07a075755..df10a02bbc 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -4474,11 +4474,11 @@ testStoragePoolCreateXML(virConnectPtr conn, unsigned int flags) { testDriverPtr privconn =3D conn->privateData; - virStoragePoolDefPtr newDef; virStoragePoolObjPtr obj =3D NULL; virStoragePoolDefPtr def; virStoragePoolPtr pool =3D NULL; virObjectEventPtr event =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) newDef =3D NULL; =20 virCheckFlags(0, NULL); =20 @@ -4527,7 +4527,6 @@ testStoragePoolCreateXML(virConnectPtr conn, pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 cleanup: - virStoragePoolDefFree(newDef); virObjectEventStateQueue(privconn->eventState, event); virStoragePoolObjEndAPI(&obj); virObjectUnlock(privconn); @@ -4541,11 +4540,11 @@ testStoragePoolDefineXML(virConnectPtr conn, unsigned int flags) { testDriverPtr privconn =3D conn->privateData; - virStoragePoolDefPtr newDef; virStoragePoolObjPtr obj =3D NULL; virStoragePoolDefPtr def; virStoragePoolPtr pool =3D NULL; virObjectEventPtr event =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) newDef =3D NULL; =20 virCheckFlags(0, NULL); =20 @@ -4576,7 +4575,6 @@ testStoragePoolDefineXML(virConnectPtr conn, pool =3D virGetStoragePool(conn, def->name, def->uuid, NULL, NULL); =20 cleanup: - virStoragePoolDefFree(newDef); virObjectEventStateQueue(privconn->eventState, event); virStoragePoolObjEndAPI(&obj); virObjectUnlock(privconn); diff --git a/tests/storagebackendsheepdogtest.c b/tests/storagebackendsheep= dogtest.c index 540f89c3ab..03ddf76d65 100644 --- a/tests/storagebackendsheepdogtest.c +++ b/tests/storagebackendsheepdogtest.c @@ -59,7 +59,7 @@ test_node_info_parser(const void *opaque) collie_test test =3D data->data; int ret =3D -1; char *output =3D NULL; - virStoragePoolDefPtr pool =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) pool =3D NULL; =20 if (!(pool =3D virStoragePoolDefParseFile(data->poolxml))) goto cleanup; @@ -82,7 +82,6 @@ test_node_info_parser(const void *opaque) =20 cleanup: VIR_FREE(output); - virStoragePoolDefFree(pool); return ret; } =20 @@ -93,7 +92,7 @@ test_vdi_list_parser(const void *opaque) collie_test test =3D data->data; int ret =3D -1; char *output =3D NULL; - virStoragePoolDefPtr pool =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) pool =3D NULL; VIR_AUTOPTR(virStorageVolDef) vol =3D NULL; =20 if (!(pool =3D virStoragePoolDefParseFile(data->poolxml))) @@ -120,7 +119,6 @@ test_vdi_list_parser(const void *opaque) =20 cleanup: VIR_FREE(output); - virStoragePoolDefFree(pool); return ret; } =20 diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c index acb15f3a2c..c8d5c41cd4 100644 --- a/tests/storagepoolxml2xmltest.c +++ b/tests/storagepoolxml2xmltest.c @@ -20,7 +20,7 @@ testCompareXMLToXMLFiles(const char *inxml, const char *o= utxml) { char *actual =3D NULL; int ret =3D -1; - virStoragePoolDefPtr dev =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) dev =3D NULL; =20 if (!(dev =3D virStoragePoolDefParseFile(inxml))) goto fail; @@ -35,7 +35,6 @@ testCompareXMLToXMLFiles(const char *inxml, const char *o= utxml) =20 fail: VIR_FREE(actual); - virStoragePoolDefFree(dev); return ret; } =20 diff --git a/tests/storagevolxml2argvtest.c b/tests/storagevolxml2argvtest.c index 4c98decc4d..edff8d8477 100644 --- a/tests/storagevolxml2argvtest.c +++ b/tests/storagevolxml2argvtest.c @@ -49,10 +49,10 @@ testCompareXMLToArgvFiles(bool shouldFail, virCommandPtr cmd =3D NULL; =20 virStoragePoolDefPtr def =3D NULL; - virStoragePoolDefPtr inputpool =3D NULL; virStoragePoolObjPtr obj =3D NULL; VIR_AUTOPTR(virStorageVolDef) vol =3D NULL; VIR_AUTOPTR(virStorageVolDef) inputvol =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) inputpool =3D NULL; =20 if (!(def =3D virStoragePoolDefParseFile(poolxml))) goto cleanup; @@ -139,7 +139,6 @@ testCompareXMLToArgvFiles(bool shouldFail, ret =3D 0; =20 cleanup: - virStoragePoolDefFree(inputpool); virCommandFree(cmd); VIR_FREE(actualCmdline); virStoragePoolObjEndAPI(&obj); diff --git a/tests/storagevolxml2xmltest.c b/tests/storagevolxml2xmltest.c index 95e205a0ab..cb78bd5b28 100644 --- a/tests/storagevolxml2xmltest.c +++ b/tests/storagevolxml2xmltest.c @@ -19,7 +19,7 @@ testCompareXMLToXMLFiles(const char *poolxml, const char = *inxml, { char *actual =3D NULL; int ret =3D -1; - virStoragePoolDefPtr pool =3D NULL; + VIR_AUTOPTR(virStoragePoolDef) pool =3D NULL; VIR_AUTOPTR(virStorageVolDef) dev =3D NULL; =20 if (!(pool =3D virStoragePoolDefParseFile(poolxml))) @@ -38,7 +38,6 @@ testCompareXMLToXMLFiles(const char *poolxml, const char = *inxml, =20 fail: VIR_FREE(actual); - virStoragePoolDefFree(pool); return ret; } =20 --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list