COMMAND
NFS
SYSTEMS AFFECTED
Those runnng NetApp NFS
PROBLEM
Dmitry Kohmanyuk posted following. It's only relevant to those
using NetApp NFS file servers. There are 2 versions of NFS in
town, v2 and v3. In v3, one of things introduced was ability to
read names of files in directory with stat(2)ing them at the same
time; the procedure name is readdirplus. It can be used to speed
up programs like ls(1).
Apparently, NFS code in FreeBSD 2.2 (derived from 4.4BSD code, so
perhaps this applies to all of modern BSD systems here) allow
client to specify this in mount options without using NFS v3. This
meaningless set of options panics NetApp file server.
SOLUTION
The following simple patch for /usr/src/sys/nfs/nfs_bio.c fixes
this problem.
--- nfs_bio.c.ok Wed Nov 5 20:11:17 1997
+++ nfs_bio.c Wed Nov 5 20:14:06 1997
@@ -1031,6 +1031,8 @@
case VDIR:
nfsstats.readdir_bios++;
uiop->uio_offset = ((u_quad_t)bp->b_lblkno) * NFS_DIRBLKSIZ;
+ if (!(nmp->nm_flag & NFSMNT_NFSV3))
+ nmp->nm_flag &= ~NFSMNT_RDIRPLUS; /* dk@farm.org */
if (nmp->nm_flag & NFSMNT_RDIRPLUS) {
error = nfs_readdirplusrpc(vp, uiop, cr);
if (error == NFSERR_NOTSUPP)