summaryrefslogtreecommitdiff
path: root/libparted
diff options
context:
space:
mode:
authordann frazier <dann.frazier@canonical.com>2018-09-07 13:31:15 -0600
committerBrian C. Lane <bcl@redhat.com>2018-10-16 14:24:32 -0700
commit279bd5540a59e3bdc4e3702ff062f87fd842c0e9 (patch)
treef2a26b62987b0936330cc3cf6653b61372eebdd4 /libparted
parent25a19f80a97b4b04d1ada3fdfe45671121886b6d (diff)
downloadparted-279bd5540a59e3bdc4e3702ff062f87fd842c0e9.tar.gz
Read NVMe model names from sysfs
parted currently shows the same generic model name for all NVMe devices: # parted /dev/nvme0n1 -s print | grep Model Model: NVMe Device (nvme) If the model information is available in sysfs, display that instead: # parted /dev/nvme0n1 -s print | grep Model Model: THNSN5512GPU7 NVMe TOSHIBA 512GB (nvme) Signed-off-by: Brian C. Lane <bcl@redhat.com>
Diffstat (limited to 'libparted')
-rw-r--r--libparted/arch/linux.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/libparted/arch/linux.c b/libparted/arch/linux.c
index 02d7a52..7d83dfb 100644
--- a/libparted/arch/linux.c
+++ b/libparted/arch/linux.c
@@ -1405,6 +1405,22 @@ init_sdmmc (PedDevice* dev)
return init_generic(dev, id);
}
+static int
+init_nvme (PedDevice* dev)
+{
+ int ret;
+ char *model = read_device_sysfs_file (dev, "model");
+
+ if (!model)
+ ret = init_generic (dev, _("NVMe Device"));
+ else {
+ ret = init_generic (dev, model);
+ free (model);
+ }
+
+ return ret;
+}
+
static PedDevice*
linux_new (const char* path)
{
@@ -1489,7 +1505,7 @@ linux_new (const char* path)
break;
case PED_DEVICE_NVME:
- if (!init_generic (dev, _("NVMe Device")))
+ if (!init_nvme (dev))
goto error_free_arch_specific;
break;