]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virStorageBackendISCSIDirectFindPoolSources: Rework cleanup
authorPeter Krempa <pkrempa@redhat.com>
Fri, 18 Jun 2021 12:08:24 +0000 (14:08 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 21 Jun 2021 08:46:35 +0000 (10:46 +0200)
virISCSIDirectScanTargets now returns a GStrv, so we can use automatic
cleanup for it and get rid of the cleanup section.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/storage/storage_backend_iscsi_direct.c

index 7b2e62f2b8719690b6905f62100cfb6a66db5758..37052ac4c6e07666fbfcd610c09e04c968a585ee 100644 (file)
@@ -485,8 +485,7 @@ virStorageBackendISCSIDirectFindPoolSources(const char *srcSpec,
                                             unsigned int flags)
 {
     size_t ntargets = 0;
-    char **targets = NULL;
-    char *ret = NULL;
+    g_auto(GStrv) targets = NULL;
     size_t i;
     g_autoptr(virStoragePoolSourceList) list = g_new0(virStoragePoolSourceList, 1);
     g_autofree char *portal = NULL;
@@ -508,20 +507,20 @@ virStorageBackendISCSIDirectFindPoolSources(const char *srcSpec,
     if (source->nhost != 1) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("Expected exactly 1 host for the storage pool"));
-        goto cleanup;
+        return NULL;
     }
 
     if (!source->initiator.iqn) {
         virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
                        _("missing initiator IQN"));
-        goto cleanup;
+        return NULL;
     }
 
     if (!(portal = virStorageBackendISCSIDirectPortal(source)))
-        goto cleanup;
+        return NULL;
 
     if (virISCSIDirectScanTargets(source->initiator.iqn, portal, &ntargets, &targets) < 0)
-        goto cleanup;
+        return NULL;
 
     list->sources = g_new0(virStoragePoolSource, ntargets);
 
@@ -541,14 +540,7 @@ virStorageBackendISCSIDirectFindPoolSources(const char *srcSpec,
         list->nsources++;
     }
 
-    if (!(ret = virStoragePoolSourceListFormat(list)))
-        goto cleanup;
-
- cleanup:
-    for (i = 0; i < ntargets; i++)
-        VIR_FREE(targets[i]);
-    VIR_FREE(targets);
-    return ret;
+    return virStoragePoolSourceListFormat(list);
 }
 
 static struct iscsi_context *