NFSD: MKNOD should return NFSERR_BADTYPE instead of NFSERR_INVAL
authorChuck Lever <chuck.lever@oracle.com>
Fri, 23 Oct 2020 14:41:12 +0000 (10:41 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 5 Nov 2020 22:20:12 +0000 (17:20 -0500)
commit66d60e3ad1e44d42d940767f62bf265f107fb628
tree516f071d9827605b654aa83c0d46cb344653593c
parentd321ff589c16d8c2207485a6d7fbdb14e873d46e
NFSD: MKNOD should return NFSERR_BADTYPE instead of NFSERR_INVAL

A late paragraph of RFC 1813 Section 3.3.11 states:

| ... if the server does not support the target type or the
| target type is illegal, the error, NFS3ERR_BADTYPE, should
| be returned. Note that NF3REG, NF3DIR, and NF3LNK are
| illegal types for MKNOD.

The Linux NFS server incorrectly returns NFSERR_INVAL in these
cases.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs3proc.c