From: Patrick Donnelly Date: Sun, 29 Apr 2018 01:42:03 +0000 (-0700) Subject: mds: kick rdlock if waiting for dirfragtreelock X-Git-Tag: v12.2.6~81^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=1e99072ddda84f8108b54f4af71e1dad9e04720e;p=ceph.git mds: kick rdlock if waiting for dirfragtreelock Fixes: https://tracker.ceph.com/issues/23919 Signed-off-by: Patrick Donnelly (cherry picked from commit 9e12aa5d3b3757efe7109c055e631b7bfb787871) --- diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 7911fd03004b..b54f3e1b1bb3 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -6742,8 +6742,9 @@ bool MDCache::trim_inode(CDentry *dn, CInode *in, CDir *con, mapis_auth() && !in->dirfragtreelock.can_read(-1)) + if (!in->is_auth() && !mds->locker->rdlock_try(&in->dirfragtreelock, -1, nullptr)) { return true; + } // DIR list dfls;