"%s: failed to return namespace id\n",
devicename);
}
- return nsid;
+ return nsid < 0 ? 0 : nsid;
}
static int delete_ns(int argc, char **argv, struct command *cmd, struct plugin *plugin)
if (S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0) {
+ if (cfg.namespace_id == 0) {
err = EINVAL;
goto close_fd;
}
fmt = BINARY;
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (posix_memalign(&nsdescs, getpagesize(), 0x1000)) {
flags |= HUMAN;
if (!cfg.namespace_id && S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
else if(!cfg.namespace_id)
fprintf(stderr,
if (S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (cfg.namespace_id != NVME_NSID_ALL) {
err = nvme_identify_ns(fd, cfg.namespace_id, 0, &ns);
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
err = nvme_write_uncorrectable(fd, cfg.namespace_id, cfg.start_block,
else
printf("NVME Write Uncorrectable Success\n");
+close_fd:
close(fd);
return err;
control |= NVME_RW_DEAC;
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
err = nvme_write_zeros(fd, cfg.namespace_id, cfg.start_block, cfg.block_count,
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (!cfg.cdw11)
cfg.cdw11 = (cfg.ad << 2) | (cfg.idw << 1) | (cfg.idr << 0);
if (fd < 0)
return fd;
- if (S_ISBLK(nvme_stat.st_mode))
+ if (S_ISBLK(nvme_stat.st_mode)) {
cfg.namespace_id = get_nsid(fd);
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
+ }
+
err = nvme_flush(fd, cfg.namespace_id);
if (err < 0)
perror("flush");
nvme_status_to_string(err), err);
else
printf("NVMe Flush: success\n");
+close_fd:
close(fd);
return err;
}
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (cfg.racqa > 7) {
fprintf(stderr, "invalid racqa:%d\n", cfg.racqa);
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (cfg.cptpl > 3) {
fprintf(stderr, "invalid cptpl:%d\n", cfg.cptpl);
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (cfg.rrela > 7) {
fprintf(stderr, "invalid rrela:%d\n", cfg.rrela);
if (!cfg.namespace_id) {
cfg.namespace_id = get_nsid(fd);
- if (cfg.namespace_id <= 0)
- return EINVAL;
+ if (cfg.namespace_id == 0) {
+ err = EINVAL;
+ goto close_fd;
+ }
}
if (!cfg.numd || cfg.numd > (0x1000 >> 2))
cfg.numd = 0x1000 >> 2;