From: huanwen ren Date: Mon, 19 Jun 2017 11:26:48 +0000 (+0800) Subject: mds: repeat dir->is_frozen in rdlock_path_xlock_dentry X-Git-Tag: v12.1.1~147^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a5f1684819d9e094d503de081400ab720808dd7a;p=ceph.git mds: repeat dir->is_frozen in rdlock_path_xlock_dentry 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 --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 01e92484bfd8..75b6f2a0dad8 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -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()) {