]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/blkdev: pass devname to block_device_*
authorSage Weil <sage@redhat.com>
Fri, 24 Mar 2017 15:03:08 +0000 (11:03 -0400)
committerSage Weil <sage@redhat.com>
Wed, 29 Mar 2017 17:23:59 +0000 (13:23 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
src/common/blkdev.cc
src/os/bluestore/KernelDevice.cc

index 27d491dc2cba7a0321e68c545a078ed06c1d4e95..6e956deece04ba9f02e26e1453098b8525c26e9e 100644 (file)
@@ -132,18 +132,13 @@ int get_block_device_base(const char *dev, char *out, size_t out_len)
  * return 0 on success
  * return negative error on error
  */
-int64_t get_block_device_string_property(const char *devname, const char *property,
+int64_t get_block_device_string_property(const char *devname,
+                                        const char *property,
                                         char *val, size_t maxlen)
 {
-  char basename[PATH_MAX], filename[PATH_MAX];
-  int64_t r;
-
-  r = get_block_device_base(devname, basename, sizeof(basename));
-  if (r < 0)
-    return r;
-
+  char filename[PATH_MAX];
   snprintf(filename, sizeof(filename),
-          "%s/sys/block/%s/%s", sandbox_dir, basename, property);
+          "%s/sys/block/%s/%s", sandbox_dir, devname, property);
 
   FILE *fp = fopen(filename, "r");
   if (fp == NULL) {
index 191090d1f146e98fc0bae5b94d1a63d524559623..5f7fe838bf5f83e0d8bcaa210daec1a08b1c1703 100644 (file)
@@ -112,9 +112,16 @@ int KernelDevice::open(const string& p)
     if (r < 0) {
       goto out_fail;
     }
-
-    rotational = block_device_is_rotational(path.c_str());
     size = s;
+
+    char partition[1024], devname[1024];
+    r = get_device_by_fd(fd_buffered, partition, devname);
+    if (r < 0) {
+      derr << "unable to get device name for " << path << ": "
+          << cpp_strerror(r) << dendl;
+      goto out_fail;
+    }
+    rotational = block_device_is_rotational(devname);
   } else {
     size = st.st_size;
     //regular file is rotational device