]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC: r259845
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 1 Jan 2014 22:43:16 +0000 (22:43 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 1 Jan 2014 22:43:16 +0000 (22:43 +0000)
commit3b769b51ba4f848c3e957f31f91b84a19c1cedcc
tree3307a9b84c90184978668a36ca6bace0680fada6
parentd2b561682f79cbb1e52d60fab19fd9619664adc8
MFC: r259845
An intermittent problem with NFSv4 exporting of ZFS snapshots was
reported to the freebsd-fs mailing list. I believe the problem was
caused by the Readdir operation using VFS_VGET() for a snapshot file entry
instead of VOP_LOOKUP(). This would not occur for NFSv3, since it
will do a VFS_VGET() of "." which fails with ENOTSUPP at the beginning
of the directory, whereas NFSv4 does not check "." or "..". This
patch adds a call to VFS_VGET() for the directory being read to check
for ENOTSUPP.
I also observed that the mount_on_fileid and fsid attributes were
not correct at the snapshot's auto mountpoints when looking at packet
traces for the Readdir. This patch fixes the attributes by doing a check
for different v_mount structure, even if the vnode v_mountedhere is not
set.

git-svn-id: svn://svn.freebsd.org/base/stable/9@260173 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfsserver/nfs_nfsdport.c