Messages in this thread | | | Subject | Re: NFS Permission denied instead of EROFS | From | Trond Myklebust <> | Date | Thu, 27 Oct 2005 18:54:28 -0400 |
| |
to den 27.10.2005 klokka 22:57 (+0200) skreiv Jan Engelhardt:
> # grep export /etc/exports > /export *(ro,async,no_root_squash) > # mount localhost:/export /mnt -t nfs -oro > # logout > $ cat /proc/mounts | grep nfs > localhost:/export /mnt nfs ro,v3,rsize=32768,wsize=32768,hard,tcp,lock,addr=localhost 0 0 > $ ls -l /mnt/file > -rw-r--r-- 1 root root 0 Oct 27 22:42 /mnt/file > $ touch /mnt/file > touch: cannot touch `file': Read-only file system > $ strace -e trace=file touch /mnt/file > open("/mnt/file", O_WRONLY|O_NONBLOCK|O_CREAT|O_NOCTTY|O_LARGEFILE, 0666) = > -1 EACCES (Permission denied) > utimes("/mnt/file", NULL) = -1 EACCES (Permission denied) > ... > touch: cannot touch `/mnt/file': Permission denied
This is on a filesystem that has been mounted with the -ro flag? That would be a client bug.
Hmm... The client code does look a bit dodgy there (particularly NFSv4). I'll see if I can come up with a patch.
> If the file does not exist however, everything is ok: > $ touch /mnt/file > touch: cannot touch /mnt/file': Read-only file system > $ strace -e trace=file touch /mnt/file > open("/mnt/file", O_WRONLY|O_NONBLOCK|O_CREAT|O_NOCTTY|O_LARGEFILE, 0666) = > -1 EROFS (Read-only file system) > utimes("/mnt/file", NULL) = -1 ENOENT (No such file or directory) > > > Which brings me right to question... should mountd or knfsd be adjusted to > refuse a rw mount request if an nfs export is only available as ro? Like it is > already the case with normal block devices:
How would knfsd or mountd know? There is no way for the client to communicate to the server that it is mounting for read-write.
Cheers, Trond
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |