[PATCH] nvme-print: print the nvme generic name in json output as well
Sagi Grimberg
sagi at grimberg.me
Wed Feb 15 01:00:20 PST 2023
For both simple and detailed outputs present the nvme generic
chardev name/path similar to how the ns name/path is presented.
Signed-off-by: Sagi Grimberg <sagi at grimberg.me>
---
nvme-print-json.c | 4 ++++
nvme-print.c | 2 +-
nvme-print.h | 1 +
3 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/nvme-print-json.c b/nvme-print-json.c
index df5616e88119..489e9e15c3b5 100644
--- a/nvme-print-json.c
+++ b/nvme-print-json.c
@@ -2507,6 +2507,7 @@ static void json_detail_list(nvme_root_t r)
uint64_t nuse = nvme_ns_get_lba_util(n) * lba;
json_object_add_value_string(jns, "NameSpace", nvme_ns_get_name(n));
+ json_object_add_value_string(jns, "Generic", nvme_ns_get_generic_name(n));
json_object_add_value_int(jns, "NSID", nvme_ns_get_nsid(n));
json_object_add_value_uint64(jns, "UsedBytes", nuse);
json_object_add_value_uint64(jns, "MaximumLBA", nvme_ns_get_lba_count(n));
@@ -2565,15 +2566,18 @@ static struct json_object *json_list_item(nvme_ns_t n)
{
struct json_object *jdevice = json_create_object();
char devname[128] = { 0 };
+ char genname[128] = { 0 };
int lba = nvme_ns_get_lba_size(n);
uint64_t nsze = nvme_ns_get_lba_count(n) * lba;
uint64_t nuse = nvme_ns_get_lba_util(n) * lba;
nvme_dev_full_path(n, devname, sizeof(devname));
+ nvme_generic_full_path(n, genname, sizeof(genname));
json_object_add_value_int(jdevice, "NameSpace", nvme_ns_get_nsid(n));
json_object_add_value_string(jdevice, "DevicePath", devname);
+ json_object_add_value_string(jdevice, "GenericPath", genname);
json_object_add_value_string(jdevice, "Firmware", nvme_ns_get_firmware(n));
json_object_add_value_string(jdevice, "ModelNumber", nvme_ns_get_model(n));
json_object_add_value_string(jdevice, "SerialNumber", nvme_ns_get_serial(n));
diff --git a/nvme-print.c b/nvme-print.c
index fee9aabfc176..ec98fe304c4b 100644
--- a/nvme-print.c
+++ b/nvme-print.c
@@ -5108,7 +5108,7 @@ void nvme_dev_full_path(nvme_ns_t n, char *path, size_t len)
snprintf(path, len, "%s", nvme_ns_get_name(n));
}
-static void nvme_generic_full_path(nvme_ns_t n, char *path, size_t len)
+void nvme_generic_full_path(nvme_ns_t n, char *path, size_t len)
{
int head_instance;
int instance;
diff --git a/nvme-print.h b/nvme-print.h
index ab11774daa28..7a4ceeea5131 100644
--- a/nvme-print.h
+++ b/nvme-print.h
@@ -149,6 +149,7 @@ const char *nvme_feature_to_string(enum nvme_features_id feature);
const char *nvme_register_to_string(int reg);
void nvme_dev_full_path(nvme_ns_t n, char *path, size_t len);
+void nvme_generic_full_path(nvme_ns_t n, char *path, size_t len);
char *zone_type_to_string(__u8 cond);
char *zone_state_to_string(__u8 state);
const char *nvme_pel_event_to_string(int type);
--
2.34.1
More information about the Linux-nvme
mailing list