From 245f8b418dfdd44306e2007462f83296d5835b69 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 (cherry picked from commit aea215103caf669c3e289cc07f978511d61f68b0) --- 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 8cf9888f0f797..6fdd11b170b24 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4586,13 +4586,16 @@ int BlueStore::_open_db(bool create) } 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 @@ -4654,13 +4657,16 @@ int BlueStore::_open_db(bool create) } cct->_conf->set_val("rocksdb_separate_wal_dir", "true"); bluefs_single_shared_device = false; - } else if (::lstat(bfn.c_str(), &st) == -1) { - cct->_conf->set_val("rocksdb_separate_wal_dir", "false"); } 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; + cct->_conf->set_val("rocksdb_separate_wal_dir", "false"); + } else { + derr << __func__ << " " << bfn << " symlink exists but target unusable: " + << cpp_strerror(r) << dendl; + goto free_bluefs; + } } if (create) { -- 2.39.5