]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
NFS: NFSERR_INVAL is not defined by NFSv2
authorChuck Lever <chuck.lever@oracle.com>
Wed, 10 Dec 2025 00:28:50 +0000 (19:28 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 26 Jan 2026 15:10:58 +0000 (10:10 -0500)
commit0ac903d1bfdce8ff40657c2b7d996947b72b6645
tree89c4fb3ff590764a8fd57436c42a5af7d29e0afd
parent288d9ddbb74f52e07b1e2bc628768f7847dcb7e6
NFS: NFSERR_INVAL is not defined by NFSv2

A documenting comment in include/uapi/linux/nfs.h claims incorrectly
that NFSv2 defines NFSERR_INVAL. There is no such definition in either
RFC 1094 or https://pubs.opengroup.org/onlinepubs/9629799/chap7.htm

NFS3ERR_INVAL is introduced in RFC 1813.

NFSD returns NFSERR_INVAL for PROC_GETACL, which has no
specification (yet).

However, nfsd_map_status() maps nfserr_symlink and nfserr_wrong_type
to nfserr_inval, which does not align with RFC 1094. This logic was
introduced only recently by commit 438f81e0e92a ("nfsd: move error
choice for incorrect object types to version-specific code."). Given
that we have no INVAL or SERVERFAULT status in NFSv2, probably the
only choice is NFSERR_IO.

Fixes: 438f81e0e92a ("nfsd: move error choice for incorrect object types to version-specific code.")
Reviewed-by: NeilBrown <neil@brown.name>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs2acl.c
fs/nfsd/nfsproc.c
include/uapi/linux/nfs.h