cifs: allow for larger rsize= options and change defaults
authorJeff Layton <jlayton@redhat.com>
Wed, 19 Oct 2011 19:30:26 +0000 (15:30 -0400)
committerJeff Layton <jlayton@redhat.com>
Wed, 19 Oct 2011 19:30:26 +0000 (15:30 -0400)
commit5eba8ab3606621f7e175ae9f521d71f3ac534f82
tree8fe7387d9ec3b284a8c1d4a5d2fc9e49d2c393b5
parent690c5e3163502f229e5b5d455e5212e28c20cd6d
cifs: allow for larger rsize= options and change defaults

Currently we cap the rsize at a value that fits in CIFSMaxBufSize. That's
not needed any longer for readpages. Allow the use of larger values for
readpages. cifs_iovec_read and cifs_read however are still limited to the
CIFSMaxBufSize. Make sure they don't exceed that.

The patch also changes the rsize defaults. The default when unix
extensions are enabled is set to 1M for parity with the wsize, and there
is a hard cap of ~16M.

When unix extensions are not enabled, the default is set to 60k. According
to MS-CIFS, Windows servers can only send a max of 60k at a time, so
this is more efficient than requesting a larger size. If the user wishes
however, the max can be extended up to 128k - the length of the READ_RSP
header.

Really old servers however require a special hack to ensure that we don't
request too large a read.

Reviewed-and-Tested-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Jeff Layton <jlayton@redhat.com>
fs/cifs/connect.c
fs/cifs/file.c