From: Yan, Zheng Date: Fri, 23 Dec 2016 11:12:18 +0000 (+0800) Subject: mds: cleanup Server::rdlock_path_xlock_dentry X-Git-Tag: v12.0.0~220^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c94a2c429e0a08e89248cf457cffacfde34d977a;p=ceph-ci.git mds: cleanup Server::rdlock_path_xlock_dentry Signed-off-by: Yan, Zheng --- diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 1e8f4177711..88ded97796f 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -2661,13 +2661,14 @@ CDentry* Server::rdlock_path_xlock_dentry(MDRequestRef& mdr, int n, } mdr->dn[n].push_back(dn); - mdr->in[n] = dn->get_projected_linkage()->get_inode(); + CDentry::linkage_t *dnl = dn->get_linkage(client, mdr); + mdr->in[n] = dnl->get_inode(); // -- lock -- // NOTE: rename takes the same set of locks for srcdn for (int i=0; i<(int)mdr->dn[n].size(); i++) rdlocks.insert(&mdr->dn[n][i]->lock); - if (alwaysxlock || dn->get_linkage(client, mdr)->is_null()) + if (alwaysxlock || dnl->is_null()) xlocks.insert(&dn->lock); // new dn, xlock else rdlocks.insert(&dn->lock); // existing dn, rdlock