nfsd4: don't remap EISDIR errors in rename
authorJ. Bruce Fields <bfields@redhat.com>
Tue, 30 Apr 2013 19:28:51 +0000 (15:28 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Tue, 30 Apr 2013 19:44:20 +0000 (15:44 -0400)
commit2a6cf944c2f8ad5a7ef599ed275b85fa56eba3fc
tree77fdb6c0ccc56fca8aa36086aa2f46c67fb559ce
parentd28fcc830c2eadc526e43b0a5f6d2ed04e7421ef
nfsd4: don't remap EISDIR errors in rename

We're going out of our way here to remap an error to make rfc 3530
happy--but the rfc itself (nor rfc 1813, which has similar language)
gives no justification.  And disagrees with local filesystem behavior,
with Linux and posix man pages, and knfsd's implemented behavior for v2
and v3.

And the documented behavior seems better, in that it gives a little more
information--you could implement the 3530 behavior using the posix
behavior, but not the other way around.

Also, the Linux client makes no attempt to remap this error in the v4
case, so it can end up just returning EEXIST to the application in a
case where it should return EISDIR.

So honestly I think the rfc's are just buggy here--or in any case it
doesn't see worth the trouble to remap this error.

Reported-by: Frank S Filz <ffilz@us.ibm.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs4proc.c