[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