]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: repeat dir->is_frozen in rdlock_path_xlock_dentry 15758/head
authorhuanwen ren <rhwlyw@163.com>
Mon, 19 Jun 2017 11:26:48 +0000 (19:26 +0800)
committerGitHub <noreply@github.com>
Mon, 19 Jun 2017 11:26:48 +0000 (19:26 +0800)
Because traverse_to_auth_dir() in the rdlock_path_xlock_dentry() call dir->is_frozen,
as "traverse_to_auth_dir ---> validate_dentry_dir() ---> dir->is_frozen()",
so this is repeated to judge "dir->is_frozen()" in "rdlock_path_xlock_dentry()".

Signed-off-by: huanwen ren <ren.huanwen@zte.com.cn>
src/mds/Server.cc

index 01e92484bfd85bfb295b104ded929c808d0ba35a..75b6f2a0dad8f29e412991bb8caf6d86c8518f9e 100644 (file)
@@ -2631,13 +2631,6 @@ CDentry* Server::rdlock_path_xlock_dentry(MDRequestRef& mdr, int n,
   if (!dir) return 0;
   dout(10) << "rdlock_path_xlock_dentry dir " << *dir << dendl;
 
-  // make sure we can auth_pin (or have already authpinned) dir
-  if (dir->is_frozen()) {
-    dout(7) << "waiting for !frozen/authpinnable on " << *dir << dendl;
-    dir->add_waiter(CInode::WAIT_UNFREEZE, new C_MDS_RetryRequest(mdcache, mdr));
-    return 0;
-  }
-
   CInode *diri = dir->get_inode();
   if (!mdr->reqid.name.is_mds()) {
     if (diri->is_system() && !diri->is_root()) {