static int list_subsys(int argc, char **argv, struct command *cmd,
struct plugin *plugin)
{
- nvme_root_t r = NULL;
+ _cleanup_nvme_root_ nvme_root_t r = NULL;
enum nvme_print_flags flags;
const char *desc = "Retrieve information for subsystems";
nvme_scan_filter_t filter = NULL;
err = argconfig_parse(argc, argv, desc, opts);
if (err < 0)
- goto ret;
+ return err;
devname = NULL;
if (optind < argc)
nvme_show_error("Failed to scan nvme subsystem for %s", devname);
else
nvme_show_error("Failed to scan nvme subsystem");
- err = -errno;
- goto ret;
+ return -errno;
}
if (devname) {
if (sscanf(devname, "nvme%dn%d", &subsys_num, &nsid) != 2) {
nvme_show_error("Invalid device name %s", devname);
- err = -EINVAL;
- goto ret;
+ return -EINVAL;
}
filter = nvme_match_device_filter;
}
if (err) {
if (errno != ENOENT)
nvme_show_error("Failed to scan topology: %s", nvme_strerror(errno));
- goto ret;
+ return -errno;
}
nvme_show_subsystem_list(r, nsid != NVME_NSID_ALL, flags);
-ret:
- if (r)
- nvme_free_tree(r);
- return err;
+ return 0;
}
static int list(int argc, char **argv, struct command *cmd, struct plugin *plugin)
{
const char *desc = "Retrieve basic information for all NVMe namespaces";
enum nvme_print_flags flags;
- nvme_root_t r;
+ _cleanup_nvme_root_ nvme_root_t r = NULL;
int err = 0;
NVME_ARGS(opts);
if (err < 0) {
if (errno != ENOENT)
nvme_show_error("Failed to scan topology: %s", nvme_strerror(errno));
- nvme_free_tree(r);
return err;
}
nvme_show_list_items(r, flags);
- nvme_free_tree(r);
return err;
}
const char *desc = "Show the topology\n";
const char *ranking = "Ranking order: namespace|ctrl";
enum nvme_print_flags flags;
- nvme_root_t r;
+ _cleanup_nvme_root_ nvme_root_t r = NULL;
enum nvme_cli_topo_ranking rank;
int err;
}
nvme_show_topology(r, rank, flags);
- nvme_free_tree(r);
return err;
}