diff options
| author | Neil Brown <neilb@cse.unsw.edu.au> | 2002-10-11 05:34:33 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-10-11 05:34:33 -0700 |
| commit | 700ee9f089eddb576b4acffb0d86a0807d994402 (patch) | |
| tree | 5782f8484ef9da5b951707b9c2899ada1bbc2eab /include | |
| parent | bbe0c3d99f33fa97db37a1c4e393c79965666752 (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')
| -rw-r--r-- | include/linux/nfsd/const.h | 10 | ||||
| -rw-r--r-- | include/linux/nfsd/xdr.h | 2 |
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 *); |
