From owner-freebsd-stable Wed Jan 24 10:57:24 2001 Delivered-To: freebsd-stable@freebsd.org Received: from c014.sfo.cp.net (c014-h023.c014.sfo.cp.net [209.228.12.87]) by hub.freebsd.org (Postfix) with SMTP id 791EF37B402 for ; Wed, 24 Jan 2001 10:57:05 -0800 (PST) Received: (cpmta 15354 invoked from network); 24 Jan 2001 10:57:04 -0800 Received: from d8c81e5f.dsl.flashcom.net (HELO quadrajet.flashcom.com) (216.200.30.95) by smtp.flashcom.net (209.228.12.87) with SMTP; 24 Jan 2001 10:57:04 -0800 X-Sent: 24 Jan 2001 18:57:04 GMT Received: (from guy@localhost) by quadrajet.flashcom.com (8.9.3/8.9.3) id KAA00535; Wed, 24 Jan 2001 10:57:03 -0800 (PST) (envelope-from gharris) Date: Wed, 24 Jan 2001 10:57:03 -0800 From: Guy Harris To: Guy Harris Cc: Mike Smith , Matthias Andree , Linux NFS mailing list , FreeBSD Stable Subject: Re: [NFS] Incompatible: FreeBSD 4.2 client, Linux 2.2.18 nfsv3 server, read-only export Message-ID: <20010124105703.G344@quadrajet.flashcom.com> References: <200101241104.f0OB4sS10071@mass.dis.org> <200101241117.f0OBH7S10154@mass.dis.org> <20010124104216.F344@quadrajet.flashcom.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.4i In-Reply-To: <20010124104216.F344@quadrajet.flashcom.com>; from gharris@flashcom.net on Wed, Jan 24, 2001 at 10:42:16AM -0800 Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG On Wed, Jan 24, 2001 at 10:42:16AM -0800, Guy Harris wrote: > If you do want to work around the Linux bug, you'd probably have to send > another ACCESS request over the wire, with the write bits turned off; > I'm not sure whether that's worth the effort or not. An alternative patch is *** vfs.c.dist Sun Dec 10 16:49:44 2000 --- vfs.c Wed Jan 24 10:54:15 2001 *************** *** 448,454 **** error = nfsd_permission(export, dentry, (map->how | NO_OWNER_OVERRIDE)); if (error == 0) result |= map->access; ! else if ((error == nfserr_perm) || (error == nfserr_acces)) { /* * This access type is denyed; but the * access query itself succeeds. --- 448,455 ---- error = nfsd_permission(export, dentry, (map->how | NO_OWNER_OVERRIDE)); if (error == 0) result |= map->access; ! else if ((error == nfserr_perm) || (error == nfserr_acces) || ! (error == nfserr_rofs)) { /* * This access type is denyed; but the * access query itself succeeds. but you apply that one to the Linux NFS server code (in "fs/nfsd/vfs.c"), which should fix the Linux server bug. (I haven't tried it, or compiled it, as my machine is currently running FreeBSD, but I think it should, at least compile, and I expect it to solve the problem.) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message