]> www.infradead.org Git - users/hch/nvme-cli.git/commitdiff
Merge pull request #296 from minwooim/v1.6/return_neg_val_get_nsid
authorKeith Busch <keith.busch@intel.com>
Mon, 5 Feb 2018 21:09:49 +0000 (14:09 -0700)
committerGitHub <noreply@github.com>
Mon, 5 Feb 2018 21:09:49 +0000 (14:09 -0700)
nvme-cli: make return negative value in nvme_get_nsid() when not blkdev

1  2 
nvme-ioctl.c
nvme.c

diff --cc nvme-ioctl.c
Simple merge
diff --cc nvme.c
index 3984d0faaf943f0c5d6b28d060bb2ed615e8b850,fa84508cfe53c1d115701271b773d41d56245ca0..09b977d0650689c94b0a1324994e5691ad4e6b6d
--- 1/nvme.c
--- 2/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);