mds: set mdr->in[n] in rdlock_path_xlock_dentry

This keeps things consistent with what we'd get with
path_traverse.  Namely, it means that if done_locking gets
set to true, then a future call to rdlock_path_pin_ref can
bail out and return mdr->in[n] and get a correct value.

This fixes

 touch mnt/a
 ls mnt
 touch mnt/.ceph

mds hang on the create request.
This commit is contained in:
Sage Weil 2009-12-02 12:00:19 -08:00
parent 378e476923
commit fd0195a9d8

View File

@ -1752,6 +1752,7 @@ CDentry* Server::rdlock_path_xlock_dentry(MDRequest *mdr, int n,
}
mdr->dn[n].push_back(dn);
mdr->in[n] = dn->get_projected_linkage()->get_inode();
// -- lock --
for (int i=0; i<(int)mdr->dn[n].size(); i++)