On Fri, Jan 05, 2007 at 12:11:17PM -0500, Shaya Potter wrote: > ok, I guess what I don't understand is when are > > dentry->d_sb->s_root and nd->mnt->mnt_root not equivalent. > > I guess it would be "when crossing a mountpoint on the server", so I > look at nfs_follow_mountpoint() and basically see that you create a new > mountpoint and a new nd for that. And since superblock objects are only > per "real" file system not per mount point, they will be different. > > I guess the question is, why shouldn't a dentry object know what > vfsmount it belongs to is? Can it belong to multiple vfsmount objects? Yes. dentry belongs to superblock. vfsmount refers to a subtree of some superblock's dentry tree. There can be any number of vfsmounts refering to subtrees of the same fs. Some might refer to the entire tree, some - to its arbitrary subtrees (possibly as small as a single file). There can be any number of vfsmounts refering to any given subtree. Think what happens when you create a binding. Or when you clone an entire namespace. (Pieces of) the same filesystem might be mounted in a lot of places. vfsmount describes a part of unified tree delimited by mountpoints; if the same fs (or its parts) are seen under several mountpoints, you get vfsmounts that refer to the same fs instance, i.e. the same superblock and dentry tree. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html