]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/blkdev: do not include vendor in fallback mode
authorSage Weil <sage@redhat.com>
Mon, 11 Jun 2018 13:00:33 +0000 (08:00 -0500)
committerSage Weil <sage@redhat.com>
Mon, 11 Jun 2018 13:00:41 +0000 (08:00 -0500)
The 'vendor' file usually contains a string like "ATA", not an actual
vendor.

Signed-off-by: Sage Weil <sage@redhat.com>
src/common/blkdev.cc

index c88c28dfae4b50026c886141cff88b39d6f85bfe..370cafccccd1e56335e6ebbc111a70cb003a1f1c 100644 (file)
@@ -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;
 }