From: Keith Busch Date: Mon, 5 Feb 2018 21:09:49 +0000 (-0700) Subject: Merge pull request #296 from minwooim/v1.6/return_neg_val_get_nsid X-Git-Tag: v1.6~90 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=960de1bdcead1ff96086a8ff891185a6421cf3bb;p=users%2Fhch%2Fnvme-cli.git Merge pull request #296 from minwooim/v1.6/return_neg_val_get_nsid nvme-cli: make return negative value in nvme_get_nsid() when not blkdev --- 960de1bdcead1ff96086a8ff891185a6421cf3bb diff --cc nvme.c index 3984d0f,fa84508..09b977d --- a/nvme.c +++ b/nvme.c @@@ -1571,14 -1573,15 +1572,17 @@@ static int ns_descs(int argc, char **ar return fd; fmt = validate_output_format(cfg.output_format); - if (fmt < 0) - return fmt; + if (fmt < 0) { + err = fmt; + goto close_fd; + } if (cfg.raw_binary) fmt = BINARY; - if (!cfg.namespace_id) + if (!cfg.namespace_id) { cfg.namespace_id = get_nsid(fd); + if (cfg.namespace_id <= 0) + return EINVAL; + } if (posix_memalign(&nsdescs, getpagesize(), 0x1000)) { fprintf(stderr, "can not allocate controller list payload\n"); @@@ -2989,12 -2905,14 +3005,15 @@@ static int dsm(int argc, char **argv, s nr = max(nc, max(nb, ns)); if (!nr || nr > 256) { fprintf(stderr, "No range definition provided\n"); - return EINVAL; + err = EINVAL; + goto close_fd; } - if (!cfg.namespace_id) + if (!cfg.namespace_id) { cfg.namespace_id = get_nsid(fd); + if (cfg.namespace_id <= 0) + return EINVAL; + } if (!cfg.cdw11) cfg.cdw11 = (cfg.ad << 2) | (cfg.idw << 1) | (cfg.idr << 0); @@@ -3107,12 -3019,14 +3126,15 @@@ static int resv_acquire(int argc, char if (fd < 0) return fd; - if (!cfg.namespace_id) + if (!cfg.namespace_id) { cfg.namespace_id = get_nsid(fd); + if (cfg.namespace_id <= 0) + return EINVAL; + } if (cfg.racqa > 7) { fprintf(stderr, "invalid racqa:%d\n", cfg.racqa); - return EINVAL; + err = EINVAL; + goto close_fd; } err = nvme_resv_acquire(fd, cfg.namespace_id, cfg.rtype, cfg.racqa, @@@ -3173,12 -3084,14 +3195,15 @@@ static int resv_register(int argc, cha if (fd < 0) return fd; - if (!cfg.namespace_id) + if (!cfg.namespace_id) { cfg.namespace_id = get_nsid(fd); + if (cfg.namespace_id <= 0) + return EINVAL; + } if (cfg.cptpl > 3) { fprintf(stderr, "invalid cptpl:%d\n", cfg.cptpl); - return EINVAL; + err = EINVAL; + goto close_fd; } err = nvme_resv_register(fd, cfg.namespace_id, cfg.rrega, cfg.cptpl, @@@ -3241,12 -3151,14 +3266,15 @@@ static int resv_release(int argc, char if (fd < 0) return fd; - if (!cfg.namespace_id) + if (!cfg.namespace_id) { cfg.namespace_id = get_nsid(fd); + if (cfg.namespace_id <= 0) + return EINVAL; + } if (cfg.iekey > 1) { fprintf(stderr, "invalid iekey:%d\n", cfg.iekey); - return EINVAL; + err = EINVAL; + goto close_fd; } if (cfg.rrela > 7) { fprintf(stderr, "invalid rrela:%d\n", cfg.rrela);