int exitstatus = 0;
VIR_AUTOFREE(char *) error = NULL;
- virCommandPtr cmd = virCommandNewArgList(ISCSIADM, "--mode",
+ VIR_AUTOPTR(virCommand) cmd = virCommandNewArgList(ISCSIADM, "--mode",
"session", NULL);
virCommandSetErrorBuffer(cmd, &error);
vars,
virISCSIExtractSession,
&cbdata, NULL, &exitstatus) < 0)
- goto cleanup;
+ return NULL;
if (cbdata.session == NULL && !probe)
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot find iscsiadm session: %s"),
NULLSTR(error));
- cleanup:
- virCommandFree(cmd);
return cbdata.session;
}
{
int ret = IQN_ERROR;
char *line = NULL;
- virCommandPtr cmd = virCommandNewArgList(ISCSIADM,
- "--mode", "iface", NULL);
VIR_AUTOFREE(char *) outbuf = NULL;
VIR_AUTOFREE(char *) iface = NULL;
VIR_AUTOFREE(char *) iqn = NULL;
+ VIR_AUTOPTR(virCommand) cmd = virCommandNewArgList(ISCSIADM,
+ "--mode", "iface", NULL);
*ifacename = NULL;
if (ret == IQN_MISSING)
VIR_DEBUG("Could not find interface with IQN '%s'", iqn);
- virCommandFree(cmd);
return ret;
error:
char **ifacename)
{
int ret = -1, exitstatus = -1;
- virCommandPtr cmd = NULL;
VIR_AUTOFREE(char *) temp_ifacename = NULL;
+ VIR_AUTOPTR(virCommand) cmd = NULL;
if (virAsprintf(&temp_ifacename,
"libvirt-iface-%08llx",
ret = 0;
cleanup:
- virCommandFree(cmd);
if (ret != 0)
VIR_FREE(*ifacename);
return ret;
const char *target,
const char **extraargv)
{
- int ret = -1;
const char *const baseargv[] = {
ISCSIADM,
"--mode", "node",
"--targetname", target,
NULL
};
- virCommandPtr cmd;
+ VIR_AUTOPTR(virCommand) cmd = NULL;
VIR_AUTOFREE(char *) ifacename = NULL;
cmd = virCommandNewArgs(baseargv);
break;
case IQN_MISSING:
if (virStorageBackendCreateIfaceIQN(initiatoriqn, &ifacename) != 0)
- goto cleanup;
+ return -1;
/*
* iscsiadm doesn't let you send commands to the Interface IQN,
* unless you've first issued a 'sendtargets' command to the
*/
if (virISCSIScanTargetsInternal(portal, ifacename,
true, NULL, NULL) < 0)
- goto cleanup;
+ return -1;
break;
case IQN_ERROR:
default:
- goto cleanup;
+ return -1;
}
virCommandAddArgList(cmd, "--interface", ifacename, NULL);
}
if (virCommandRun(cmd, NULL) < 0)
- goto cleanup;
-
- ret = 0;
-
- cleanup:
- virCommandFree(cmd);
+ return -1;
- return ret;
+ return 0;
}
int
virISCSIRescanLUNs(const char *session)
{
- virCommandPtr cmd = virCommandNewArgList(ISCSIADM,
+ VIR_AUTOPTR(virCommand) cmd = virCommandNewArgList(ISCSIADM,
"--mode", "session",
"-r", session,
"-R",
NULL);
- int ret = virCommandRun(cmd, NULL);
- virCommandFree(cmd);
- return ret;
+ return virCommandRun(cmd, NULL);
}
int vars[] = { 2 };
struct virISCSITargetList list;
size_t i;
- int ret = -1;
- virCommandPtr cmd = virCommandNewArgList(ISCSIADM,
+ VIR_AUTOPTR(virCommand) cmd = virCommandNewArgList(ISCSIADM,
"--mode", "discovery",
"--type", "sendtargets",
"--portal", portal,
vars,
virISCSIGetTargets,
&list, NULL, NULL) < 0)
- goto cleanup;
+ return -1;
if (ntargetsret && targetsret) {
*ntargetsret = list.ntargets;
VIR_FREE(list.targets);
}
- ret = 0;
- cleanup:
- virCommandFree(cmd);
- return ret;
+ return 0;
}
virISCSINodeNew(const char *portal,
const char *target)
{
- virCommandPtr cmd = NULL;
+ VIR_AUTOPTR(virCommand) cmd = NULL;
int status;
- int ret = -1;
cmd = virCommandNewArgList(ISCSIADM,
"--mode", "node",
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed new node mode for target '%s'"),
target);
- goto cleanup;
+ return -1;
}
if (status != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("%s failed new mode for target '%s' with status '%d'"),
ISCSIADM, target, status);
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- virCommandFree(cmd);
- return ret;
+ return 0;
}
const char *name,
const char *value)
{
- virCommandPtr cmd = NULL;
+ VIR_AUTOPTR(virCommand) cmd = NULL;
int status;
- int ret = -1;
cmd = virCommandNewArgList(ISCSIADM,
"--mode", "node",
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Failed to update '%s' of node mode for target '%s'"),
name, target);
- goto cleanup;
+ return -1;
}
- ret = 0;
- cleanup:
- virCommandFree(cmd);
- return ret;
+ return 0;
}