]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
client: move client_lock to _unmount()
authorXiubo Li <xiubli@redhat.com>
Thu, 23 Jul 2020 05:11:06 +0000 (13:11 +0800)
committerXiubo Li <xiubli@redhat.com>
Wed, 29 Jul 2020 04:42:48 +0000 (00:42 -0400)
Fixes: https://tracker.ceph.com/issues/46682
Signed-off-by: Xiubo Li <xiubli@redhat.com>
src/client/Client.cc
src/client/Delegation.cc

index bd55e0410012615cbfbcd95d6d16c57ac57894d2..2395698fafa97c9b4efea91440707ea510d00e76 100755 (executable)
@@ -6142,7 +6142,7 @@ void Client::_abort_mds_sessions(int err)
 
 void Client::_unmount(bool abort)
 {
-  std::unique_lock lock{client_lock, std::adopt_lock};
+  std::unique_lock lock{client_lock};
   if (unmounting)
     return;
 
@@ -6278,19 +6278,16 @@ void Client::_unmount(bool abort)
 
   mounted = false;
 
-  lock.release();
   ldout(cct, 2) << "unmounted." << dendl;
 }
 
 void Client::unmount()
 {
-  std::lock_guard lock(client_lock);
   _unmount(false);
 }
 
 void Client::abort_conn()
 {
-  std::lock_guard lock(client_lock);
   _unmount(true);
 }
 
index 5199131e25109a183e013324985f84981fdeef85..0c0ac1b359f19302cf332d877e9d98c69bc7f14c 100644 (file)
@@ -20,7 +20,6 @@ public:
          ": delegation return timeout for inode 0x" <<
          std::hex << in->ino << ". Forcibly unmounting client. "<<
          client << std::dec << dendl;
-    std::scoped_lock l(client->client_lock);
     client->_unmount(false);
   }
 };