]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore: make bad symlink target error messages more informative
authorSage Weil <sage@redhat.com>
Fri, 8 Jun 2018 13:34:53 +0000 (08:34 -0500)
committerAlfredo Deza <adeza@redhat.com>
Tue, 12 Jun 2018 21:19:44 +0000 (17:19 -0400)
Signed-off-by: Sage Weil <sage@redhat.com>
(cherry picked from commit aea215103caf669c3e289cc07f978511d61f68b0)

src/os/bluestore/BlueStore.cc

index d2ed285fcea2a0e1ad0f12728a906f31a70114e1..7830bdd6860c667d157240bd523707915b4d0ebc 100644 (file)
@@ -4754,13 +4754,16 @@ int BlueStore::_open_db(bool create, bool to_repair_db)
       }
       bluefs_shared_bdev = BlueFS::BDEV_SLOW;
       bluefs_single_shared_device = false;
-    } else if (::lstat(bfn.c_str(), &st) == -1) {
-      bluefs_shared_bdev = BlueFS::BDEV_DB;
     } else {
-      //symlink exist is bug
-      derr << __func__ << " " << bfn << " link target doesn't exist" << dendl;
       r = -errno;
-      goto free_bluefs;
+      if (::lstat(bfn.c_str(), &st) == -1) {
+       r = 0;
+       bluefs_shared_bdev = BlueFS::BDEV_DB;
+      } else {
+       derr << __func__ << " " << bfn << " symlink exists but target unusable: "
+            << cpp_strerror(r) << dendl;
+       goto free_bluefs;
+      }
     }
 
     // shared device
@@ -4824,13 +4827,16 @@ int BlueStore::_open_db(bool create, bool to_repair_db)
       }
       kv_options["separate_wal_dir"] = "1";
       bluefs_single_shared_device = false;
-    } else if (::lstat(bfn.c_str(), &st) == -1) {
-      kv_options.erase("separate_wal_dir");
     } else {
-      //symlink exist is bug
-      derr << __func__ << " " << bfn << " link target doesn't exist" << dendl;
       r = -errno;
-      goto free_bluefs;
+      if (::lstat(bfn.c_str(), &st) == -1) {
+       kv_options.erase("separate_wal_dir");
+       r = 0;
+      } else {
+       derr << __func__ << " " << bfn << " symlink exists but target unusable: "
+            << cpp_strerror(r) << dendl;
+       goto free_bluefs;
+      }
     }
 
     if (create) {