On Thu, 2010-12-09 at 07:51 -0500, Steve Dickson wrote:
> 
> On 12/08/2010 09:56 AM, Ondrej Valousek wrote:
> > On 08.12.2010 14:45, Ian Kent wrote:
> >> On Wed, 2010-12-08 at 13:51 +0100, Ondrej Valousek wrote:
> >>> On 08.12.2010 13:36, Ian Kent wrote: 
> >>>> The default should be determined by mount.nfs(8) since that's what
> >>>> autofs uses to perform mounts.
> >>> I see, but it works only if the nfs4 root export is the same as /. It
> >>> does not work otherwise. Example:
> >>> Server 'dorado' exporting directory /exports which is also fsid=0 for
> >>> nfs4.
> >>> There is (also shared) subdirectory 'ext1' in this one. When I do:
> >>>
> >>> cd /net/dorado/exports/ext1
> >>>
> >>> ... the export is mounted using NFSv3. Theoretically if I did:
> >>>
> >>> cd /net/dorado/ext1
> >>>
> >>> ... I should have the same mounted via NFSv4, right? Unfortunately it
> >>> does not work. But it should because:
> >>>
> >>> mount dorado:/ext1 /mnt
> >>>
> >>> works (giving nfs4 mount)....
> >> The only information the hosts map has to go on is the export list
> >> received from the server.
> >>
> >> There is no way for autofs to know that /exports is the global root from
> >> the mountd exports information. It only knows that /exports is an export
> >> and neither does it know what NFS version the server may offer for this
> >> mount. That information just isn't available.
> >>
> >> As I said, I thought in recent Fedora releases (not sure now when this
> >> should have happened), that
> >>
> >> mount <server>:/exports /<some mount point>
> >>
> >> and 
> >>
> >> mount <server>:/ /<some mount point>
> >>
> >> should both work and mount as NFSv4. Correct me if I'm wrong but your
> >> point is that it is mounting as NFSv3 so perhaps we should log a bug and
> >> see what the experts have to say on this.
> >>
> >> Ian
> >>
> >>
> > Hi Ian,
> > 
> > I understand that autofs can not know that /exports is a global root. I 
> > just thought that mine:
> > 
> > cd /net/dorado/ext1
> > 
> > ... (i.e. omitting the "exports" word) should work as this way should 
> > autofs pass something like this : "mount.nfs dorado:/ext1 /net/dorado/ext1" 
> > which would succeed then, resulting in a nfs4 mount. What happens now is 
> > (obviously) that autofs can not find 'ext1' in the exports information from 
> > 'dorado' and so it fails even without trying....
> It depends on your server... If your server does not support v4, the
> mount will roll back to v3. An rpcinfo -p <server> will show if 
> the server support v4.

Knowing that the server supports NFSv4 doesn't tell me which export is a
global root though (does it?).

I guess I could code the rpcinfo calls and rewrite the mount code to
retry if v4 is supported. Not sure I like that idea though.

My problem is knowing for sure what the global root is and then I also
don't know what mount.nfs(8) will do with it. If I did have some way of
knowing what the global root was then trying to accommodate it will
cause mounts that fall back to v3 to fail.

I thought that the recent NFS server changes were meant to allow both
the mount paths above to function, like I think they do on other OSes
(I'll check on that if you really want me to)?

Ian

_______________________________________________
autofs mailing list
autofs@linux.kernel.org
http://linux.kernel.org/mailman/listinfo/autofs

Reply via email to