[CIFS] Make cifs default wsize match what we actually want to send (52K
typically - header + 13 pages). Forgetting to set wsize on the mount command costs more than 10% on large write (can be much more) so this makes a saner default. We still shrink this default smaller if server can not support it. Signed-off-by: Steve French <sfrench@us.ibm.com>
This commit is contained in:
Родитель
4c8af5254e
Коммит
17cbbafe8e
|
@ -1785,7 +1785,15 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
|
|||
} else if(volume_info.wsize)
|
||||
cifs_sb->wsize = volume_info.wsize;
|
||||
else
|
||||
cifs_sb->wsize = CIFSMaxBufSize; /* default */
|
||||
cifs_sb->wsize =
|
||||
min(PAGEVEC_SIZE * PAGE_CACHE_SIZE, 127*1024);
|
||||
/* old default of CIFSMaxBufSize was too small now
|
||||
that SMB Write2 can send multiple pages in kvec.
|
||||
RFC1001 does not describe what happens when frame
|
||||
bigger than 128K is sent so use that as max in
|
||||
conjunction with 52K kvec constraint on arch with 4K
|
||||
page size */
|
||||
|
||||
if(cifs_sb->rsize < PAGE_CACHE_SIZE) {
|
||||
cifs_sb->rsize = PAGE_CACHE_SIZE;
|
||||
/* Windows ME does this */
|
||||
|
|
Загрузка…
Ссылка в новой задаче