diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-01 23:15:57 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-01 23:15:57 -0500 |
commit | 8aeba3c62a64e0f6527d1a0388b1a6a7060158ba (patch) | |
tree | 8ed24e13468c348ed69d866ca8433bd2f3ccdce6 | |
parent | 61ee9cd5f2e76859222c1d64394ae633f9080163 (diff) | |
parent | e6da74e1f20ea7822e52a9e4fbd3d25bd907e471 (diff) |
Merge master.kernel.org:/pub/scm/linux/kernel/git/sfrench/cifs-2.6
-rw-r--r-- | fs/cifs/connect.c | 11 | ||||
-rw-r--r-- | fs/cifs/file.c | 8 | ||||
-rw-r--r-- | fs/cifs/transport.c | 1 |
3 files changed, 17 insertions, 3 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 88f60aa52058..e488603fb1e7 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -1785,7 +1785,16 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb, | |||
1785 | } else if(volume_info.wsize) | 1785 | } else if(volume_info.wsize) |
1786 | cifs_sb->wsize = volume_info.wsize; | 1786 | cifs_sb->wsize = volume_info.wsize; |
1787 | else | 1787 | else |
1788 | cifs_sb->wsize = CIFSMaxBufSize; /* default */ | 1788 | cifs_sb->wsize = |
1789 | min_t(const int, PAGEVEC_SIZE * PAGE_CACHE_SIZE, | ||
1790 | 127*1024); | ||
1791 | /* old default of CIFSMaxBufSize was too small now | ||
1792 | that SMB Write2 can send multiple pages in kvec. | ||
1793 | RFC1001 does not describe what happens when frame | ||
1794 | bigger than 128K is sent so use that as max in | ||
1795 | conjunction with 52K kvec constraint on arch with 4K | ||
1796 | page size */ | ||
1797 | |||
1789 | if(cifs_sb->rsize < PAGE_CACHE_SIZE) { | 1798 | if(cifs_sb->rsize < PAGE_CACHE_SIZE) { |
1790 | cifs_sb->rsize = PAGE_CACHE_SIZE; | 1799 | cifs_sb->rsize = PAGE_CACHE_SIZE; |
1791 | /* Windows ME does this */ | 1800 | /* Windows ME does this */ |
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index 77c990f0cb98..d17c97d07c80 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c | |||
@@ -1190,7 +1190,6 @@ retry: | |||
1190 | /* BB what if continued retry is | 1190 | /* BB what if continued retry is |
1191 | requested via mount flags? */ | 1191 | requested via mount flags? */ |
1192 | set_bit(AS_EIO, &mapping->flags); | 1192 | set_bit(AS_EIO, &mapping->flags); |
1193 | SetPageError(page); | ||
1194 | } else { | 1193 | } else { |
1195 | cifs_stats_bytes_written(cifs_sb->tcon, | 1194 | cifs_stats_bytes_written(cifs_sb->tcon, |
1196 | bytes_written); | 1195 | bytes_written); |
@@ -1198,6 +1197,13 @@ retry: | |||
1198 | } | 1197 | } |
1199 | for (i = 0; i < n_iov; i++) { | 1198 | for (i = 0; i < n_iov; i++) { |
1200 | page = pvec.pages[first + i]; | 1199 | page = pvec.pages[first + i]; |
1200 | /* Should we also set page error on | ||
1201 | success rc but too little data written? */ | ||
1202 | /* BB investigate retry logic on temporary | ||
1203 | server crash cases and how recovery works | ||
1204 | when page marked as error */ | ||
1205 | if(rc) | ||
1206 | SetPageError(page); | ||
1201 | kunmap(page); | 1207 | kunmap(page); |
1202 | unlock_page(page); | 1208 | unlock_page(page); |
1203 | page_cache_release(page); | 1209 | page_cache_release(page); |
diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index 7b98792150ea..b12cb8a7da7c 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c | |||
@@ -498,7 +498,6 @@ SendReceive2(const unsigned int xid, struct cifsSesInfo *ses, | |||
498 | else | 498 | else |
499 | *pRespBufType = CIFS_SMALL_BUFFER; | 499 | *pRespBufType = CIFS_SMALL_BUFFER; |
500 | iov[0].iov_len = receive_len + 4; | 500 | iov[0].iov_len = receive_len + 4; |
501 | iov[1].iov_len = 0; | ||
502 | 501 | ||
503 | dump_smb(midQ->resp_buf, 80); | 502 | dump_smb(midQ->resp_buf, 80); |
504 | /* convert the length into a more usable form */ | 503 | /* convert the length into a more usable form */ |