From owner-freebsd-stable Thu Jan 25 12:42:14 2001 Delivered-To: freebsd-stable@freebsd.org Received: from zmamail04.zma.compaq.com (zmamail04.zma.compaq.com [161.114.64.104]) by hub.freebsd.org (Postfix) with ESMTP id 33CA837B698; Thu, 25 Jan 2001 12:41:56 -0800 (PST) Received: by zmamail04.zma.compaq.com (Postfix, from userid 12345) id 6A5984A0B; Thu, 25 Jan 2001 15:41:51 -0500 (EST) Received: from mailrelay01.cce.cpqcorp.net (mailrelay01.cce.cpqcorp.net [16.47.68.171]) by zmamail04.zma.compaq.com (Postfix) with ESMTP id 10F0247EE; Thu, 25 Jan 2001 15:40:41 -0500 (EST) Received: by mailrelay01.cce.cpqcorp.net (Postfix, from userid 12345) id 8B9292F4; Thu, 25 Jan 2001 14:42:36 -0600 (CST) Received: from anw.zk3.dec.com (wasted.zk3.dec.com [16.140.32.3]) by mailrelay01.cce.cpqcorp.net (Postfix) with ESMTP id 1B84035E; Thu, 25 Jan 2001 14:42:36 -0600 (CST) Received: by anw.zk3.dec.com (8.9.3/1.1.22.2/08Sep98-0251PM) id PAA0000803167; Thu, 25 Jan 2001 15:40:06 -0500 (EST) Date: Thu, 25 Jan 2001 15:40:06 -0500 (EST) Message-Id: <200101252040.PAA0000803167@anw.zk3.dec.com> From: Eric Werme USG To: Mike Smith , Linux NFS mailing list , FreeBSD Stable Cc: Guy Harris Subject: Re: [NFS] Incompatible: FreeBSD 4.2 client, Linux 2.2.18 nfsv3 server, read-only export Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG > At least from looking at the Linux 2.2.18 code, if you get EROFS back > from the Linux server, the actual set of access bits you get back won't > have the right bits set; "nfsd_access()" just jumps to "out:" if it gets > a "read-only file system" error, and that doesn't set "*access" to the > result. Umm, either I'm reading your post wrong, or you've glitched on your recall of the protocol. If you get EROFS back from ACCESS, you won't get access bits: /* * The following union defines the results from invoking the * procedure ACCESS. */ struct ACCESS3resok { post_op_attr obj_attributes; uint32 access; /* bit mask - see above */ }; struct ACCESS3resfail { post_op_attr obj_attributes; }; union ACCESS3res switch (nfsstat3 status) { case NFS3_OK: ACCESS3resok resok; default: ACCESS3resfail resfail; }; If status == NFS3ERR_ROFS, then you get ACCESS3resfail which does not have the bit mask that is only returned as part of ACCESS3resok. Folks, I think we've beaten this dead molehill into a mountain. What's going to happen when someone finds a big problem? -Ric Werme -- Eric (Ric) Werme | werme@zk3.dec.com Compaq Computer Corp. >>>> http://people.ne.mediaone.net/werme/h8dcyf.html <<<< To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message