nfsd: Make creates return EEXIST instead of EACCES
authorOleg Drokin <green@linuxhacker.ru>
Fri, 15 Jul 2016 03:20:22 +0000 (23:20 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 4 Aug 2016 21:11:46 +0000 (17:11 -0400)
commit7eed34f18d9f0f96f51bfb73d649a51a20857eb0
tree32d4f2332f9305226f81d60f262842f5b9250b35
parentc7995f8a70c441146e128934d775d4ba0e4d7bc4
nfsd: Make creates return EEXIST instead of EACCES

When doing a create (mkdir/mknod) on a name, it's worth
checking the name exists first before returning EACCES in case
the directory is not writeable by the user.
This makes return values on the client more consistent
regardless of whenever the entry there is cached in the local
cache or not.
Another positive side effect is certain programs only expect
EEXIST in that case even despite POSIX allowing any valid
error to be returned.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4proc.c
fs/nfsd/vfs.c