aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfsd
diff options
context:
space:
mode:
authorGreg Banks <gnb@melbourne.sgi.com>2006-10-04 05:15:47 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-10-04 10:55:16 -0400
commit7adae489fe794e3e203ff168595f635d0b845e59 (patch)
treef20544b72bdaea7cff0d340b5b4e5bfcaf2ce8fb /include/linux/nfsd
parent3cc03b164cf01c6f36e64720b58610d292fb26f7 (diff)
[PATCH] knfsd: Prepare knfsd for support of rsize/wsize of up to 1MB, over TCP
The limit over UDP remains at 32K. Also, make some of the apparently arbitrary sizing constants clearer. The biggest change here involves replacing NFSSVC_MAXBLKSIZE by a function of the rqstp. This allows it to be different for different protocols (udp/tcp) and also allows it to depend on the servers declared sv_bufsiz. Note that we don't actually increase sv_bufsz for nfs yet. That comes next. Signed-off-by: Greg Banks <gnb@melbourne.sgi.com> Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/linux/nfsd')
-rw-r--r--include/linux/nfsd/const.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/include/linux/nfsd/const.h b/include/linux/nfsd/const.h
index b75bb1b38d09..adbddf007898 100644
--- a/include/linux/nfsd/const.h
+++ b/include/linux/nfsd/const.h
@@ -13,6 +13,7 @@
13#include <linux/nfs2.h> 13#include <linux/nfs2.h>
14#include <linux/nfs3.h> 14#include <linux/nfs3.h>
15#include <linux/nfs4.h> 15#include <linux/nfs4.h>
16#include <linux/sunrpc/msg_prot.h>
16 17
17/* 18/*
18 * Maximum protocol version supported by knfsd 19 * Maximum protocol version supported by knfsd
@@ -23,6 +24,8 @@
23 * Maximum blocksize supported by daemon currently at 32K 24 * Maximum blocksize supported by daemon currently at 32K
24 */ 25 */
25#define NFSSVC_MAXBLKSIZE (32*1024) 26#define NFSSVC_MAXBLKSIZE (32*1024)
27/* NFSv2 is limited by the protocol specification, see RFC 1094 */
28#define NFSSVC_MAXBLKSIZE_V2 (8*1024)
26 29
27#ifdef __KERNEL__ 30#ifdef __KERNEL__
28 31
@@ -30,7 +33,17 @@
30# define NFS_SUPER_MAGIC 0x6969 33# define NFS_SUPER_MAGIC 0x6969
31#endif 34#endif
32 35
33#define NFSD_BUFSIZE (1024 + NFSSVC_MAXBLKSIZE) 36/*
37 * Largest number of bytes we need to allocate for an NFS
38 * call or reply. Used to control buffer sizes. We use
39 * the length of v3 WRITE, READDIR and READDIR replies
40 * which are an RPC header, up to 26 XDR units of reply
41 * data, and some page data.
42 *
43 * Note that accuracy here doesn't matter too much as the
44 * size is rounded up to a page size when allocating space.
45 */
46#define NFSD_BUFSIZE ((RPC_MAX_HEADER_WITH_AUTH+26)*XDR_UNIT + NFSSVC_MAXBLKSIZE)
34 47
35#ifdef CONFIG_NFSD_V4 48#ifdef CONFIG_NFSD_V4
36# define NFSSVC_XDRSIZE NFS4_SVC_XDRSIZE 49# define NFSSVC_XDRSIZE NFS4_SVC_XDRSIZE