};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
free(ana_log);
close_fd:
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.file_name) {
fprintf(stderr, "Please provide an output file!\n");
free(page_log);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.aen) {
cfg.log_len = 4096;
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ ret = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return ret;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (posix_memalign((void *)&cntlist, getpagesize(), 0x1000)) {
fprintf(stderr, "can not allocate controller list payload\n");
close_fd:
close(fd);
-
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
err = -EINVAL;
close_fd:
close(fd);
-
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
fprintf(stderr, "%s: namespace-id parameter required\n",
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.flbas != 0xff && cfg.bs != 0x00) {
fprintf(stderr,
close_fd:
close(fd);
-
+ret:
return err;
}
ret = argconfig_parse(argc, argv, desc, opts, &cfg, sizeof(cfg));
if (ret < 0)
- return ret;
+ goto ret;
devicename = NULL;
if (optind < argc) {
&cfg.namespace_id) != 2) {
fprintf(stderr, "%s is not a NVMe namespace device\n",
argv[optind]);
- return -EINVAL;
+ ret = -EINVAL;
+ goto ret;
}
sprintf(path, "/sys/block/%s/device", devicename);
subsysnqn = get_nvme_subsnqn(path);
if (!subsysnqn) {
fprintf(stderr, "Cannot read subsys NQN from %s\n",
devicename);
- return -EINVAL;
+ ret = -EINVAL;
+ goto ret;
}
optind++;
}
if (ret < 0) {
argconfig_print_help(desc, opts);
- if (subsysnqn)
- free(subsysnqn);
- return ret;
+ goto free;
}
fmt = validate_output_format(cfg.output_format);
if (fmt != JSON && fmt != NORMAL) {
if (subsysnqn)
free(subsysnqn);
- return -EINVAL;
+ ret = -EINVAL;
+ goto free;
}
slist = get_subsys_list(&subcnt, subsysnqn, cfg.namespace_id);
show_nvme_subsystem_list(slist, subcnt);
free_subsys_list(slist, subcnt);
+free:
if (subsysnqn)
free(subsysnqn);
+
+ret:
return ret;
}
ret = argconfig_parse(argc, argv, desc, opts, &cfg, sizeof(cfg));
if (ret < 0)
- return ret;
+ goto ret;
fmt = validate_output_format(cfg.output_format);
- if (fmt != JSON && fmt != NORMAL)
- return -EINVAL;
+ if (fmt != JSON && fmt != NORMAL) {
+ ret = -EINVAL;
+ goto ret;
+ }
n = scandir(dev, &devices, scan_dev_filter, alphasort);
if (n < 0) {
fprintf(stderr, "no NVMe device(s) detected.\n");
- return n;
+ ret = n;
+ goto ret;
}
list_items = calloc(n, sizeof(*list_items));
for (i = 0; i < n; i++)
free(devices[i]);
free(devices);
-
+ ret:
return ret;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
else
perror("identify nvm set list");
- close_fd:
+close_fd:
close(fd);
-
+ret:
return err;
}
static int get_ns_id(int argc, char **argv, struct command *cmd, struct plugin *plugin)
{
- int nsid, fd;
+ int err = 0, nsid, fd;
const char *desc = "Get namespce ID of a the block device.";
const struct argconfig_commandline_options command_line_options[] = {
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
+
nsid = nvme_get_nsid(fd);
if (nsid <= 0) {
perror(devicename);
- close(fd);
- return errno;
+ err = errno;
+ goto close_fd;
}
printf("%s: namespace-id:%d\n", devicename, nsid);
+ close_fd:
close(fd);
- return 0;
+ ret:
+ return err;
}
static int virtual_mgmt(int argc, char **argv, struct command *cmd, struct plugin *plugin)
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
cfg.cdw10 = cfg.cntlid << 16;
cfg.cdw10 = cfg.cdw10 | (cfg.rt << 8);
perror("virt-mgmt");
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
err = nvme_self_test_start(fd, cfg.namespace_id, cfg.cdw10);
if (!err) {
perror("Device self-test");
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.sel > 7) {
fprintf(stderr, "invalid 'select' param:%d\n", cfg.sel);
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fw_fd = open(cfg.fw, O_RDONLY);
cfg.offset <<= 2;
close(fw_fd);
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.slot > 7) {
fprintf(stderr, "invalid slot:%d\n", cfg.slot);
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
err = nvme_subsystem_reset(fd);
if (err < 0) {
- close(fd);
if (errno == ENOTTY)
fprintf(stderr,
"Subsystem-reset: NVM Subsystem Reset not supported.\n");
else
perror("Subsystem-reset");
- return errno;
}
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
err = nvme_reset_controller(fd);
- if (err < 0) {
- close(fd);
+ if (err < 0)
perror("Reset");
- return errno;
- }
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
err = nvme_ns_rescan(fd);
- if (err < 0) {
- close(fd);
+ if (err < 0)
perror("Namespace Rescan");
- return errno;
- }
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, NULL, 0);
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ ret = fd;
+ goto ret;
+ }
switch (cfg.sanact) {
case NVME_SANITIZE_ACT_CRYPTO_ERASE:
close_fd:
close(fd);
-
+ ret:
return ret;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.offset == -1) {
fprintf(stderr, "offset required param");
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.offset == -1) {
fprintf(stderr, "offset required param");
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.lbaf != 0xff && cfg.bs !=0) {
fprintf(stderr,
close_fd:
close(fd);
-
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.feature_id) {
fprintf(stderr, "feature-id required param\n");
free(buf);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
sec_fd = open(cfg.file, O_RDONLY);
if (sec_fd < 0) {
close(sec_fd);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
switch (cfg.dtype) {
case NVME_DIR_IDENTIFY:
free(buf);
close_fd:
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
close_fd:
close(fd);
-
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.prinfo > 0xf) {
err = EINVAL;
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
nc = argconfig_parse_comma_sep_array(cfg.ctx_attrs, ctx_attrs, ARRAY_SIZE(ctx_attrs));
nb = argconfig_parse_comma_sep_array(cfg.blocks, nlbs, ARRAY_SIZE(nlbs));
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
printf("NVMe Flush: success\n");
close_fd:
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
fmt = validate_output_format(cfg.output_format);
if (fmt < 0) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
dfd = mfd = opcode & 1 ? STDIN_FILENO : STDOUT_FILENO;
if (cfg.prinfo > 0xf) {
close(dfd);
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (cfg.size) {
if (posix_memalign(&sec_buf, getpagesize(), cfg.size)) {
close_fd:
close(fd);
+ ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
switch (cfg.dtype) {
case NVME_DIR_IDENTIFY:
free(buf);
close_fd:
close(fd);
+ret:
return err;
}
};
fd = parse_and_open(argc, argv, desc, command_line_options, &cfg, sizeof(cfg));
- if (fd < 0)
- return fd;
+ if (fd < 0) {
+ err = fd;
+ goto ret;
+ }
if (strlen(cfg.input_file)){
wfd = open(cfg.input_file, O_RDONLY,
close(wfd);
close_fd:
close(fd);
+ ret:
return err;
}