Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 5 Nov 1997 21:34:00 -0800
From:      Dmitry Kohmanyuk =?KOI8-R?B?5M3J1NLJyiDrz8jNwc7Ayw==?= <dk@genesyslab.com>
To:        BUGTRAQ@NETSPACE.ORG
Cc:        freebsd-hackers@freebsd.org
Subject:   netapp NFS server crash by FreeBSD client [w/patch]
Message-ID:  <19971105213400.16235@genesyslab.com>

next in thread | raw e-mail | index | archive | help

--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii

this is only relevant to those using NetApp NFS file servers.

background:

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.

the following simple patch (attached) for 
/usr/src/sys/nfs/nfs_bio.c 
fixes this problem.


--DocE+STaALJfprDB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=d

--- 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)

--DocE+STaALJfprDB--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19971105213400.16235>