mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
util: iscsi: use VIR_AUTOFREE instead of VIR_FREE for scalar types
By making use of GNU C's cleanup attribute handled by the VIR_AUTOFREE macro for declaring scalar variables, majority of the VIR_FREE calls can be dropped, which in turn leads to getting rid of most of our cleanup sections. Signed-off-by: Sukrit Bhatnagar <skrtbhtngr@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
7c7f6f0a10
commit
ec3e8789f1
@ -88,8 +88,8 @@ virISCSIGetSession(const char *devpath,
|
|||||||
.session = NULL,
|
.session = NULL,
|
||||||
.devpath = devpath,
|
.devpath = devpath,
|
||||||
};
|
};
|
||||||
char *error = NULL;
|
|
||||||
int exitstatus = 0;
|
int exitstatus = 0;
|
||||||
|
VIR_AUTOFREE(char *) error = NULL;
|
||||||
|
|
||||||
virCommandPtr cmd = virCommandNewArgList(ISCSIADM, "--mode",
|
virCommandPtr cmd = virCommandNewArgList(ISCSIADM, "--mode",
|
||||||
"session", NULL);
|
"session", NULL);
|
||||||
@ -109,7 +109,6 @@ virISCSIGetSession(const char *devpath,
|
|||||||
NULLSTR(error));
|
NULLSTR(error));
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
VIR_FREE(error);
|
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
return cbdata.session;
|
return cbdata.session;
|
||||||
}
|
}
|
||||||
@ -125,12 +124,12 @@ virStorageBackendIQNFound(const char *initiatoriqn,
|
|||||||
char **ifacename)
|
char **ifacename)
|
||||||
{
|
{
|
||||||
int ret = IQN_ERROR;
|
int ret = IQN_ERROR;
|
||||||
char *outbuf = NULL;
|
|
||||||
char *line = NULL;
|
char *line = NULL;
|
||||||
char *iface = NULL;
|
|
||||||
char *iqn = NULL;
|
|
||||||
virCommandPtr cmd = virCommandNewArgList(ISCSIADM,
|
virCommandPtr cmd = virCommandNewArgList(ISCSIADM,
|
||||||
"--mode", "iface", NULL);
|
"--mode", "iface", NULL);
|
||||||
|
VIR_AUTOFREE(char *) outbuf = NULL;
|
||||||
|
VIR_AUTOFREE(char *) iface = NULL;
|
||||||
|
VIR_AUTOFREE(char *) iqn = NULL;
|
||||||
|
|
||||||
*ifacename = NULL;
|
*ifacename = NULL;
|
||||||
|
|
||||||
@ -197,9 +196,6 @@ virStorageBackendIQNFound(const char *initiatoriqn,
|
|||||||
if (ret == IQN_MISSING)
|
if (ret == IQN_MISSING)
|
||||||
VIR_DEBUG("Could not find interface with IQN '%s'", iqn);
|
VIR_DEBUG("Could not find interface with IQN '%s'", iqn);
|
||||||
|
|
||||||
VIR_FREE(iqn);
|
|
||||||
VIR_FREE(iface);
|
|
||||||
VIR_FREE(outbuf);
|
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
@ -216,8 +212,8 @@ virStorageBackendCreateIfaceIQN(const char *initiatoriqn,
|
|||||||
char **ifacename)
|
char **ifacename)
|
||||||
{
|
{
|
||||||
int ret = -1, exitstatus = -1;
|
int ret = -1, exitstatus = -1;
|
||||||
char *temp_ifacename;
|
|
||||||
virCommandPtr cmd = NULL;
|
virCommandPtr cmd = NULL;
|
||||||
|
VIR_AUTOFREE(char *) temp_ifacename = NULL;
|
||||||
|
|
||||||
if (virAsprintf(&temp_ifacename,
|
if (virAsprintf(&temp_ifacename,
|
||||||
"libvirt-iface-%08llx",
|
"libvirt-iface-%08llx",
|
||||||
@ -277,7 +273,6 @@ virStorageBackendCreateIfaceIQN(const char *initiatoriqn,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
VIR_FREE(temp_ifacename);
|
|
||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
VIR_FREE(*ifacename);
|
VIR_FREE(*ifacename);
|
||||||
return ret;
|
return ret;
|
||||||
@ -299,7 +294,7 @@ virISCSIConnection(const char *portal,
|
|||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
virCommandPtr cmd;
|
virCommandPtr cmd;
|
||||||
char *ifacename = NULL;
|
VIR_AUTOFREE(char *) ifacename = NULL;
|
||||||
|
|
||||||
cmd = virCommandNewArgs(baseargv);
|
cmd = virCommandNewArgs(baseargv);
|
||||||
virCommandAddArgSet(cmd, extraargv);
|
virCommandAddArgSet(cmd, extraargv);
|
||||||
@ -339,7 +334,6 @@ virISCSIConnection(const char *portal,
|
|||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
virCommandFree(cmd);
|
virCommandFree(cmd);
|
||||||
VIR_FREE(ifacename);
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -390,15 +384,13 @@ virISCSIGetTargets(char **const groups,
|
|||||||
void *data)
|
void *data)
|
||||||
{
|
{
|
||||||
struct virISCSITargetList *list = data;
|
struct virISCSITargetList *list = data;
|
||||||
char *target;
|
VIR_AUTOFREE(char *) target = NULL;
|
||||||
|
|
||||||
if (VIR_STRDUP(target, groups[1]) < 0)
|
if (VIR_STRDUP(target, groups[1]) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (VIR_APPEND_ELEMENT(list->targets, list->ntargets, target) < 0) {
|
if (VIR_APPEND_ELEMENT(list->targets, list->ntargets, target) < 0)
|
||||||
VIR_FREE(target);
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -498,8 +490,7 @@ virISCSIScanTargets(const char *portal,
|
|||||||
size_t *ntargets,
|
size_t *ntargets,
|
||||||
char ***targets)
|
char ***targets)
|
||||||
{
|
{
|
||||||
char *ifacename = NULL;
|
VIR_AUTOFREE(char *) ifacename = NULL;
|
||||||
int ret = -1;
|
|
||||||
|
|
||||||
if (ntargets)
|
if (ntargets)
|
||||||
*ntargets = 0;
|
*ntargets = 0;
|
||||||
@ -522,10 +513,8 @@ virISCSIScanTargets(const char *portal,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = virISCSIScanTargetsInternal(portal, ifacename,
|
return virISCSIScanTargetsInternal(portal, ifacename,
|
||||||
persist, ntargets, targets);
|
persist, ntargets, targets);
|
||||||
VIR_FREE(ifacename);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user