[RFC,PATCH 1/4] Dynamic Pseudo Root
Neil Brown
neilb at suse.de
Mon Dec 10 18:36:52 EST 2007
On Monday December 10, SteveD at redhat.com wrote:
>
>
> Neil Brown wrote:
> >
> > I suspect you could also get rid of the special case of '/' being
> > exported.
> > You don't create an initial 'tmpfs' mounted on .../nfs4root. You only
> > mount tmpfs on demand.
> > Then "mkpath" for "/" finds that the directory already exists and
> > simply does a bind mount of "/" to ".../nfs4root".
> I think I tried something similar to this, but I keep running into
> the "BUG_ON(IS_ROOT(dentry))" in nfs_follow_mountpoint() on client
> when I did an 'ls' on one of the directories...
If changes on the server can trigger a BUG_ON on the client, then that
sounds like a very bad situation. We should try to understand what is
happening and revise that BUG_ON.
>
> And now that I know other implementations just use '/' as the
> pseudo root, I feel better about enforcing the fact that
> when '/' is exported, that export is the pseudo root...
The problem I have with this is that it doesn't support the
missing-export case.
i.e. If / and /usr/homes are exported, but /usr isn't. then it would
seem that /usr/homes would be invisible to NFSv4 clients.
I think that if we are to follow the "build a tmpfs from userspace"
approach, then we have to be consistent about it even if / is
exported.
If we want to export '/' directly, then we will really need the
Solaris style approach and (following Brents comments) add some sort
of "only-these-inodes(x,y,...)" export option and export intermediate
filesystems with that option and an appropriate list of inode numbers.
NeilBrown
More information about the NFSv4
mailing list