From: Sage Weil Date: Mon, 11 Jun 2018 13:00:33 +0000 (-0500) Subject: common/blkdev: do not include vendor in fallback mode X-Git-Tag: v14.0.1~1131^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f1f879ac8bc3bb9c30c1a4ca4d9b88b5462834cd;p=ceph.git common/blkdev: do not include vendor in fallback mode The 'vendor' file usually contains a string like "ATA", not an actual vendor. Signed-off-by: Sage Weil --- diff --git a/src/common/blkdev.cc b/src/common/blkdev.cc index c88c28dfae4b..370cafccccd1 100644 --- a/src/common/blkdev.cc +++ b/src/common/blkdev.cc @@ -410,20 +410,19 @@ std::string get_device_id(const std::string& devname) return device_id; } - // either udev_device_get_property_value() failed, or succeeded but returned nothing; - // trying to read from files. + // either udev_device_get_property_value() failed, or succeeded but + // returned nothing; trying to read from files. note that the 'vendor' + // file rarely contains the actual vendor; it's usually 'ATA'. //derr << "udev could not retrieve serial number of " << devname << dendl; - - std::string vendor, model, serial; - vendor = get_block_device_string_property_wrap(devname, "device/vendor"); + std::string model, serial; model = get_block_device_string_property_wrap(devname, "device/model"); serial = get_block_device_string_property_wrap(devname, "device/serial"); - // "none" is here for indication reasons only, for a start. - device_id = (vendor.empty() ? "none" : vendor) + "_" - + (model.empty() ? "none" : model) + "_" - + (serial.empty() ? "none" : serial); + if (!model.size() || serial.size()) { + return {}; + } + device_id = model + "_" + serial; std::replace(device_id.begin(), device_id.end(), ' ', '_'); return device_id; }