[PATCH] knfsd: tidy up up meaning of 'buffer size' in nfsd/sunrpc
commitc6b0a9f87b82f25fa35206ec04b5160372eabab4
authorNeilBrown <neilb@suse.de>
Fri, 6 Oct 2006 07:44:05 +0000 (6 00:44 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Oct 2006 15:53:41 +0000 (6 08:53 -0700)
tree849ed55115c95a86a3d164d674c178f9504750a5
parent5842730de179405d80649231faa0b3f254477434
[PATCH] knfsd: tidy up up meaning of 'buffer size' in nfsd/sunrpc

There is some confusion about the meaning of 'bufsz' for a sunrpc server.
In some cases it is the largest message that can be sent or received.  In
other cases it is the largest 'payload' that can be included in a NFS
message.

In either case, it is not possible for both the request and the reply to be
this large.  One of the request or reply may only be one page long, which
fits nicely with NFS.

So we remove 'bufsz' and replace it with two numbers: 'max_payload' and
'max_mesg'.  Max_payload is the size that the server requests.  It is used
by the server to check the max size allowed on a particular connection:
depending on the protocol a lower limit might be used.

max_mesg is the largest single message that can be sent or received.  It is
calculated as the max_payload, rounded up to a multiple of PAGE_SIZE, and
with PAGE_SIZE added to overhead.  Only one of the request and reply may be
this size.  The other must be at most one page.

Cc: Greg Banks <gnb@sgi.com>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
fs/nfsd/nfssvc.c
include/linux/sunrpc/svc.h
net/sunrpc/svc.c
net/sunrpc/svcsock.c