On Thu, Aug 26, 2004 at 03:45:09PM -0700, Linus Torvalds wrote: > No, lookup would just return the dentry, but the dentry would already be > filled in with the mount-point information. > > And you can do that with a simple vfs helper function, ie the filesystem > itself would just need to do > > pseudo_mount(dentry, inode); > > thing - which just fills in dentry->d_mountpoint with a new vfsmount > thing. It would allocate a new root dentry (for the pseudo-mount) and a > new vfsmount, and make dentry->d_mountpoint point to it.
What dentry->d_mountpoint? No such thing... Note that we can't get vfsmount by dentry - that's the point of having these guys in the first place. So I'm not sure what you are trying to do here - dentry + inode is definitely not enough to attach any vfsmounts anywhere. That's not about namespaces - same fs mounted in several places will give the same problem - one dentry, many vfsmounts. And we obviously *can't* have one vfsmount for all of them - if the same fs is mounted on /foo and /bar, we will have the same dentry for /foo/splat and /bar/splat. So what should we get for /foo/splat/. and /bar/splat/.? Same dentry *and* same vfsmount? I'd expect .. from the former to give /foo and from the latter - /bar...
