From d2bb331a580a9318d9af250a52e69e5052f55d89 Mon Sep 17 00:00:00 2001 From: Steven Seungcheol Lee Date: Mon, 5 Apr 2021 15:07:27 +0900 Subject: [PATCH] nvme: Remove invalid device node from nvme list normal print result Node SN Model Namespace Usage Format FW Rev ---------------- -------------------- ---------------------------------------- --------- -------------------------- ---------------- -------- /dev/nvme0n1 S39XNX0J6C3BBA 91721190020910SAM0PM1725A0004T00035000 1 0.00 B / 4.19 TB 4 KiB + 0 B MVP41G7A /dev/nvme0n2 S39XNX0J6C3BBA 91721190020910SAM0PM1725A0004T00035000 2 4.19 MB / 4.19 MB 4 KiB + 0 B MVP41G7A json print result (nvme0c0n* are invaild devices name, so will be removed from list) [root@localhost nvme-cli]# nvme list -o json { "Devices" : [ { "NameSpace" : 1, "DevicePath" : "/dev/nvme0c0n1", ... "SectorSize" : 1 }, { "NameSpace" : 2, "DevicePath" : "/dev/nvme0c0n2", ... "SectorSize" : 1 }, { "NameSpace" : 1, "DevicePath" : "/dev/nvme0n1", ... "SectorSize" : 4096 }, { "NameSpace" : 2, "DevicePath" : "/dev/nvme0n2", ... "SectorSize" : 4096 } ] } Signed-off-by: Steven Seungcheol Lee --- nvme-print.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/nvme-print.c b/nvme-print.c index 7828bdb4..e2b05c77 100755 --- a/nvme-print.c +++ b/nvme-print.c @@ -6054,13 +6054,18 @@ static void json_simple_ns(struct nvme_namespace *n, struct json_object *devices struct json_object *device_attrs; char formatter[41] = { 0 }; double nsze, nuse; - int index = -1; + int ret, index = -1; long long lba; char *devnode; + struct stat st; if (asprintf(&devnode, "%s%s", n->ctrl->path, n->name) < 0) return; + ret = stat(devnode, &st); + if (ret < 0) + return; + device_attrs = json_create_object(); json_object_add_value_int(device_attrs, "NameSpace", n->nsid); -- 2.50.1