[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