Messages in this thread | | | Date | Wed, 24 Jan 2001 04:14:37 +0100 | From | Matthias Andree <> | Subject | Linux 2.2.18 nfs v3 server bug (was: Incompatible: FreeBSD 4.2 client, Linux 2.2.18 nfsv3 server, read-only export) |
| |
(Please consider removing FreeBSD-stable from the recipient list when replying.)
Summary:
The Linux 2.2.18 NFS v3 server returns bogus and as per RFC-1813 invalid NFS3ERR_ROFS to ACCESS procedure calls when exporting a file system read-only, when it should instead return "OK" along with the actual permissions the client has, ANDed with the permissions the client queried.
The bug is visible on FreeBSD 4.2-STABLE client which cannot ls The mounted file system (NFS v2 is fine since it does not have ACCESS). There is no related log entry in the 2.2.19pre7 change log. I did not check Linux 2.4.0, 2.4.0-acX or 2.4.1-preX either.
On Tue, 23 Jan 2001, Guy Harris wrote:
> Yes - for one thing, that means that if some client decides, while it's > asking whether the server whether it can write to a file, to check also > whether it can read from the file, it can get back an answer to both of > those questions, even if the file is on a read-only file system.
Yup. Looks like a Linux kernel bug, so I'm cc'ing Alan Cox as kernel release maintainer as well as linux-kernel to make this a known issue.
I got libpcap 0.6.1 and ethereal 0.8.15 and that's what I found:
FreeBSD 4.2-STABLE sends three NFSPROC3_ACCESS requests, with 0x3f argument (meaning READ|LOOKUP|MODIFY|EXTEND|DELETE|EXECUTE), and to each, Linux 2.2.18 sends NFS3ERR_ROFS back, obj_attributes contains the stat data. ERR_ROFS is invalid here and makes indeed no sense, proper behaviour would be NFS3_OK with just READ|LOOKUP|EXECUTE set, since the server can actually access or stat the exported FS. Please correct me if I'm mistaking what RFC 1813 demands.
client: $ mount server:/space /mnt $ ls /mnt ls: mnt: Read-only file system (FreeBSD 4.2-STABLE)
server: $ ls -ld /space/ drwxrwxrwt 23 root root 706 Jan 2 11:53 /space/ $ grep /space /etc/exports /space 192.168.0.0/255.255.255.0(ro) (Linux 2.2.18, nfs-utils 0.2.1)
-- Matthias Andree - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |