> I know links within the filesystem are followed by the client, but the > mount protocol has for as long as I can remember (always?) returned a > handle to the destination of the link, when the link was passed in the > request. > > I'm talking about: > > Server: > > /ex/Inst -> /export/Install > > share -F nfs -o ... /export/Install > > Client: > > mount server:/ex/Inst > > This Works with version3. When a mount for /ex/Inst is requested, The > mount protocol returns an NFS handle for /export/Install. Once the > client has the handle NFSd doesn't have to know about the link, or that > it was mounted with a different path. > > With Version 4 there is no mountd, or mount protocol. I haven't looked > far enough yet to see why the v4 nfsd can't do the same... maybe because > that would make it follow all soft links???? > > -Kyle > > Hi Kyle,
FYI, this is documented in share_nfs(1M) man page: <snip> The mountd(1M) process allows the processing of a path name the contains a symbolic link. This allows the processing of paths that are not themselves explicitly shared with share_nfs. For example, /export/foo might be a symbolic link that refers to /export/bar which has been specifically shared. When the client mounts /export/foo the mountd pro- cessing follows the symbolic link and responds with the /export/bar. The NFS Version 4 protocol does not use the mountd processing and the client's use of /export/foo does not work as it does with NFS Version 2 and Version 3 and the client receives an error when attempting to mount /export/foo. <end snip> Some of the bugs you might be interested in: 6583895 NFSv4 mount fails if specified server mount point path is a sym link 6587955 share_nfs(r1M) needs V4 update concerning sharing a symbolic link Have you tried the suggested workaround of using lofs mounts on server: <snip> Use lofs instead of a symlink on server and mount this lofs directory from client. Server Machine: --------------- bash-3.00# mkdir /var/tmp/lofs bash-3.00# mount -F lofs /var/tmp/nfs-corrupt /var/tmp/lofs bash-3.00# share -F nfs -o anon=0,ro /var/tmp/lofs bash-3.00# share - /var/tmp/lofs anon=0,ro "" Client Machine: --------------- bash-3.00# mount -F nfs -o vers=4 nfs-server:/var/tmp/lofs /mnt <end snip> Regards, -Vallish