]> www.infradead.org Git - users/sagi/libnvme.git/commitdiff
ioctl: implement nvme_set_features_lba_range()
authorCaleb Sander <csander@purestorage.com>
Fri, 15 Sep 2023 01:22:58 +0000 (19:22 -0600)
committerDaniel Wagner <wagi@monom.org>
Wed, 20 Sep 2023 08:33:57 +0000 (10:33 +0200)
nvme_set_features_lba_range() was missing an implementation,
so add one. Change nr_ranges to a u8 since its maximum value is 64.

Signed-off-by: Caleb Sander <csander@purestorage.com>
src/nvme/ioctl.c
src/nvme/ioctl.h

index e75fd318d5dae5d1ecb0fa483d02bdb2bd7719f8..14d186a7012c13526ce44d256b4ea7e9ee9e4d94 100644 (file)
@@ -591,10 +591,12 @@ int nvme_set_features_power_mgmt(int fd, __u8 ps, __u8 wh, bool save,
                                   result);
 }
 
-int nvme_set_features_lba_range(int fd, __u32 nsid, __u32 nr_ranges, bool save,
+int nvme_set_features_lba_range(int fd, __u32 nsid, __u8 nr_ranges, bool save,
                                struct nvme_lba_range_type *data, __u32 *result)
 {
-       return -1;
+       return nvme_set_features_data(
+               fd, NVME_FEAT_FID_LBA_RANGE, nsid, nr_ranges - 1, save,
+               sizeof(*data), data, result);
 }
 
 int nvme_set_features_temp_thresh(int fd, __u16 tmpth, __u8 tmpsel,
index 2570668e92ccf5dc3c2d7a63ff5ff2e8e5b50169..97280cb7bd0dddf9a4c4c35067e73419f1b5073c 100644 (file)
@@ -2240,7 +2240,7 @@ int nvme_set_features_power_mgmt(int fd, __u8 ps, __u8 wh, bool save,
  * Return: The nvme command status if a response was received (see
  * &enum nvme_status_field) or -1 with errno set otherwise.
  */
-int nvme_set_features_lba_range(int fd, __u32 nsid, __u32 nr_ranges, bool save,
+int nvme_set_features_lba_range(int fd, __u32 nsid, __u8 nr_ranges, bool save,
                                struct nvme_lba_range_type *data, __u32 *result);
 
 /**