From 3a4ebc60ed88b39ad008e15d2ce85e4c2ee3d7e4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 6 Dec 2018 10:02:20 -0600 Subject: [PATCH] common/blkdev: micron SSDs don't include vendor name in ID_SERIAL According to Ryan Meredith , the NVMes begin with MTFD, but their other devices use the standard Micron_$model_$serial. Signed-off-by: Sage Weil --- src/common/blkdev.cc | 4 ++++ .../blkdev-udevadm-info-samples/reesi001.nvme0n1 | 16 ++++++++++++++++ .../reesi001.nvme0n1.devid | 1 + 3 files changed, 21 insertions(+) create mode 100644 src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1 create mode 100644 src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1.devid diff --git a/src/common/blkdev.cc b/src/common/blkdev.cc index 7dc3f7e48e6..42f096d9b7e 100644 --- a/src/common/blkdev.cc +++ b/src/common/blkdev.cc @@ -448,6 +448,10 @@ std::string get_device_id(const std::string& devname) device_id = id_model + '_' + id_serial_short; } else if (id_serial.size()) { device_id = id_serial; + if (device_id.substr(0, 4) == "MTFD") { + // Micron NVMes hide the vendor + device_id = "Micron_" + device_id; + } } if (device_id.size()) { std::replace(device_id.begin(), device_id.end(), ' ', '_'); diff --git a/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1 b/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1 new file mode 100644 index 00000000000..48eada7725a --- /dev/null +++ b/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1 @@ -0,0 +1,16 @@ +P: /devices/pci0000:00/0000:00:02.1/0000:04:00.0/nvme/nvme0/nvme0n1 +N: nvme0n1 +S: disk/by-id/nvme-MTFDHBG800MCG-1AN1ZABYY_ZF1000MT +E: DEVLINKS=/dev/disk/by-id/nvme-MTFDHBG800MCG-1AN1ZABYY_ZF1000MT +E: DEVNAME=/dev/nvme0n1 +E: DEVPATH=/devices/pci0000:00/0000:00:02.1/0000:04:00.0/nvme/nvme0/nvme0n1 +E: DEVTYPE=disk +E: ID_PART_TABLE_TYPE=gpt +E: ID_PART_TABLE_UUID=c206417c-54fd-4938-8223-32343c5d1057 +E: ID_SERIAL=MTFDHBG800MCG-1AN1ZABYY_ZF1000MT +E: ID_SERIAL_SHORT=ZF1000MT +E: MAJOR=259 +E: MINOR=0 +E: SUBSYSTEM=block +E: TAGS=:systemd: +E: USEC_INITIALIZED=2455622 diff --git a/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1.devid b/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1.devid new file mode 100644 index 00000000000..6341dd2502f --- /dev/null +++ b/src/test/common/blkdev-udevadm-info-samples/reesi001.nvme0n1.devid @@ -0,0 +1 @@ +Micron_MTFDHBG800MCG-1AN1ZABYY_ZF1000MT -- 2.39.5