summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2002-10-11 05:34:33 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-10-11 05:34:33 -0700
commit700ee9f089eddb576b4acffb0d86a0807d994402 (patch)
tree5782f8484ef9da5b951707b9c2899ada1bbc2eab /include/linux
parentbbe0c3d99f33fa97db37a1c4e393c79965666752 (diff)
[PATCH] kNFSd: ensure XDR buffer is large enough for NFSv4
This patch changes the 'xdrsize' parameter to svc_create(), to be NFS4_SVC_XDRSIZE if v4 is defined else NFS3_SVC_XDRSIZE if v3 is defined else NFS2_SVC_XDRSIZE (formerly NFSSVC_XDRSIZE) This always works, since NFS4_SVC_XDRSIZE >= NFS3_SVC_XDRSIZE >= NFS2_SVC_XDRSIZE. The value of NFSD_BUFSIZE has also been moved to const.h, since we need the definition available in nfs4proc.c
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/nfsd/const.h10
-rw-r--r--include/linux/nfsd/xdr.h2
2 files changed, 11 insertions, 1 deletions
diff --git a/include/linux/nfsd/const.h b/include/linux/nfsd/const.h
index 623d577ca1b5..b75bb1b38d09 100644
--- a/include/linux/nfsd/const.h
+++ b/include/linux/nfsd/const.h
@@ -30,6 +30,16 @@
# define NFS_SUPER_MAGIC 0x6969
#endif
+#define NFSD_BUFSIZE (1024 + NFSSVC_MAXBLKSIZE)
+
+#ifdef CONFIG_NFSD_V4
+# define NFSSVC_XDRSIZE NFS4_SVC_XDRSIZE
+#elif defined(CONFIG_NFSD_V3)
+# define NFSSVC_XDRSIZE NFS3_SVC_XDRSIZE
+#else
+# define NFSSVC_XDRSIZE NFS2_SVC_XDRSIZE
+#endif
+
#endif /* __KERNEL__ */
#endif /* _LINUX_NFSD_CONST_H */
diff --git a/include/linux/nfsd/xdr.h b/include/linux/nfsd/xdr.h
index 5d96579529ed..d81b71fefe6d 100644
--- a/include/linux/nfsd/xdr.h
+++ b/include/linux/nfsd/xdr.h
@@ -119,7 +119,7 @@ union nfsd_xdrstore {
struct nfsd_readdirargs readdir;
};
-#define NFSSVC_XDRSIZE sizeof(union nfsd_xdrstore)
+#define NFS2_SVC_XDRSIZE sizeof(union nfsd_xdrstore)
int nfssvc_decode_void(struct svc_rqst *, u32 *, void *);