Skip to content

Commit f046bc9

Browse files
authored
Merge pull request #151 from igaw/logical-block-size
linux: Add nvme_get_logical_block_size()
2 parents f8c81dd + b71bcc4 commit f046bc9

3 files changed

Lines changed: 27 additions & 0 deletions

File tree

src/libnvme.map

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ LIBNVME_1_0 {
133133
nvme_get_log_telemetry_ctrl;
134134
nvme_get_log_telemetry_host;
135135
nvme_get_log_zns_changed_zones;
136+
nvme_get_logical_block_size;
136137
nvme_get_new_host_telemetry;
137138
nvme_get_ns_attr;
138139
nvme_get_nsid;

src/nvme/linux.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,22 @@ int nvme_get_ana_log_len(int fd, size_t *analen)
305305
return 0;
306306
}
307307

308+
int nvme_get_logical_block_size(int fd, __u32 nsid, int *blksize)
309+
{
310+
struct nvme_id_ns ns;
311+
int flbas;
312+
int ret;
313+
314+
ret = nvme_identify_ns(fd, nsid, &ns);
315+
if (ret)
316+
return ret;
317+
318+
flbas = ns.flbas & NVME_NS_FLBAS_LBA_MASK;
319+
*blksize = 1 << ns.lbaf[flbas].ds;
320+
321+
return 0;
322+
}
323+
308324
static int __nvme_set_attr(const char *path, const char *value)
309325
{
310326
int ret, fd;

src/nvme/linux.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,16 @@ int nvme_get_log_page(int fd, __u32 nsid, __u8 log_id, bool rae,
109109
*/
110110
int nvme_get_ana_log_len(int fd, size_t *analen);
111111

112+
/**
113+
* nvme_get_logical_block_size() - Retrieve block size
114+
* @fd: File descriptor of nvme device
115+
* @blksize: Pointer to where the block size will be set on success
116+
*
117+
* Return: The nvme command status if a response was received (see
118+
* &enum nvme_status_field) or -1 with errno set otherwise.
119+
*/
120+
int nvme_get_logical_block_size(int fd, __u32 nsid, int *blksize);
121+
112122
/**
113123
* nvme_get_lba_status_log() - Retreive the LBA Status log page
114124
* @fd: File descriptor of the nvme device

0 commit comments

Comments
 (0)