diff options
| author | Chuck Lever <cel@kernel.org> | 2026-09-16 12:28:34 -0400 |
|---|---|---|
| committer | Chuck Lever <cel@kernel.org> | 2026-10-11 23:12:14 -0400 |
| commit | ffbf5434ee57fb93f400705ea2674897ac7dc5f9 (patch) | |
| tree | 76fe3c61eff1456fbfcda4ff731600a10228011b | |
| parent | f49b703d853ea9d92efe3a95a6818579a254a070 (diff) | |
| download | linux-ffbf5434ee57fb93f400705ea2674897ac7dc5f9.tar.gz linux-ffbf5434ee57fb93f400705ea2674897ac7dc5f9.zip | |
NFSD: Use xdrgen-generated NFSv2 protocol definitions
Switch the server's NFSv2 implementation to use the machine-
generated protocol definitions.
Acked-by: Jeff Layton <jlayton@kernel.org>
Link: https://patch.msgid.link/20260916162859.2051-6-cel@kernel.org
Signed-off-by: Chuck Lever <cel@kernel.org>
| -rw-r--r-- | fs/nfs_common/common.c | 5 | ||||
| -rw-r--r-- | fs/nfsd/nfsd.h | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfserr.h | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfsproc.c | 2 | ||||
| -rw-r--r-- | fs/nfsd/nfsxdr.c | 9 | ||||
| -rw-r--r-- | include/linux/nfs_common.h | 4 |
6 files changed, 16 insertions, 8 deletions
diff --git a/fs/nfs_common/common.c b/fs/nfs_common/common.c index 0778743ae2c2..a05f2ace31ec 100644 --- a/fs/nfs_common/common.c +++ b/fs/nfs_common/common.c @@ -1,6 +1,7 @@ // SPDX-License-Identifier: GPL-2.0-only #include <linux/module.h> +#include <uapi/linux/nfs.h> #include <linux/nfs_common.h> #include <linux/nfs4.h> @@ -53,12 +54,12 @@ static const struct { * Returns a local errno value, or -EIO if the NFS status code is * not recognized. This function is used jointly by NFSv2 and NFSv3. */ -int nfs_stat_to_errno(enum nfs_stat status) +int nfs_stat_to_errno(int status) { int i; for (i = 0; i < ARRAY_SIZE(nfs_errtbl); i++) { - if (nfs_errtbl[i].stat == (int)status) + if (nfs_errtbl[i].stat == status) return nfs_errtbl[i].errno; } return -EIO; diff --git a/fs/nfsd/nfsd.h b/fs/nfsd/nfsd.h index 69e3e92b3ec1..d1e413d21e76 100644 --- a/fs/nfsd/nfsd.h +++ b/fs/nfsd/nfsd.h @@ -12,8 +12,6 @@ #include <linux/types.h> #include <linux/mount.h> -#include <linux/nfs.h> -#include <linux/nfs2.h> #include <linux/sunrpc/svc.h> #include <linux/sunrpc/svc_xprt.h> diff --git a/fs/nfsd/nfserr.h b/fs/nfsd/nfserr.h index d1c434b834b2..35debf1141a3 100644 --- a/fs/nfsd/nfserr.h +++ b/fs/nfsd/nfserr.h @@ -10,7 +10,7 @@ #ifndef LINUX_NFSD_NFSERR_H #define LINUX_NFSD_NFSERR_H -#include <linux/nfs.h> +#include <linux/sunrpc/xdrgen/nfs2.h> #include <linux/nfs3.h> #include <linux/nfs4.h> diff --git a/fs/nfsd/nfsproc.c b/fs/nfsd/nfsproc.c index 09d360839825..1ce75779312b 100644 --- a/fs/nfsd/nfsproc.c +++ b/fs/nfsd/nfsproc.c @@ -6,7 +6,9 @@ */ #include <linux/namei.h> +#include <linux/sunrpc/svc.h> +#include "nfs2xdr_gen.h" #include "cache.h" #include "xdr.h" #include "vfs.h" diff --git a/fs/nfsd/nfsxdr.c b/fs/nfsd/nfsxdr.c index 0961c13d6ab1..d55e7d6414a0 100644 --- a/fs/nfsd/nfsxdr.c +++ b/fs/nfsd/nfsxdr.c @@ -23,6 +23,13 @@ #define NFS2_SATTR_SET_TO_SERVER_TIME (1000000) /* + * Linux-internal ftype values for socket and unknown inodes, not + * in RFC 1094's wire enum; values match enum nfs_ftype. + */ +#define NFBAD (7) +#define NFSOCK (6) + +/* * Mapping of S_IF* types to NFS file types */ static const u32 nfs_ftypes[] = { @@ -599,7 +606,7 @@ svcxdr_encode_entry_common(struct nfsd_readdirres *resp, const char *name, if (xdr_stream_encode_u32(xdr, (u32)ino) < 0) return false; /* name */ - if (xdr_stream_encode_opaque(xdr, name, min(namlen, NFS2_MAXNAMLEN)) < 0) + if (xdr_stream_encode_opaque(xdr, name, min(namlen, NFS_MAXNAMLEN)) < 0) return false; /* cookie */ resp->cookie_offset = dirlist->len; diff --git a/include/linux/nfs_common.h b/include/linux/nfs_common.h index a541c3a02887..88dccd8564cf 100644 --- a/include/linux/nfs_common.h +++ b/include/linux/nfs_common.h @@ -6,11 +6,11 @@ #define _LINUX_NFS_COMMON_H #include <linux/errno.h> -#include <uapi/linux/nfs.h> +#include <linux/types.h> /* Mapping from NFS error code to "errno" error code. */ -int nfs_stat_to_errno(enum nfs_stat status); +int nfs_stat_to_errno(int status); int nfs4_stat_to_errno(int stat); __u32 nfs_localio_errno_to_nfs4_stat(int errno); |
