On Fri, 7 Mar 2014, Yan, Zheng wrote: > Changes since v1: > make ceph_fh_to_parent() use LOOKUPPARENT to find parent dentry. > if LOOKUPPARENT fails, retry finding the dentry that corresponds > to the 'parent_ino' Okay, all of these changes finally make sense to me now (Thanks, Zheng and Christoph). My only concern now is that the way that get_name is using LOOKUPINO feels like it is overloading the existing operation in an awkward way. Normally LOOKUPINO is used when we have an ino but no reference/cap, and returns just the cap for the ino. LOOKUPPARENT works similarly now where it returns just a cap for the parent directory but no connecting dentry; that makes sense now too. In the case of get_name, though, if I am following, we have both a cap on the directory and the child inode and just need the connecting dentry. It seems like we are better off with a new MDS op that does exactly that instead of making LOOKUPINO's behavior change wildly due to a flag (as in https://github.com/ceph/ceph/commit/3cb6168b0285acfa39c1895bc4dcf6fee408ae4b#diff-eecf840e09d7481f7b8f415789852c7dR2386 ). We should make the client get_name handle EOPNOTSUPP by translating to ESTALE, probably, in case the MDS is old. This a bit more work, but I think it'll keep the semantics for all of these ops cleaner. What do you think? (And sorry I'm still catching up here! This would have been more useful feedback 2 days ago.) sage -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html