From aea215103caf669c3e289cc07f978511d61f68b0 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 8 Jun 2018 08:34:53 -0500 Subject: [PATCH] os/bluestore: make bad symlink target error messages more informative Signed-off-by: Sage Weil --- src/os/bluestore/BlueStore.cc | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 9228a9da52d..12edfbde5b8 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4755,13 +4755,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 @@ -4825,13 +4828,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) { -- 2.47.3