aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-09-16 02:06:38 -0400
committerSteve French <sfrench@us.ibm.com>2005-09-16 02:06:38 -0400
commitf9f5c81769f88bccd177423a30a7d30461754c39 (patch)
tree52ade60ddaacefc7cd350a67a7b40d6e2d27f84c /fs
parenteafe87012159a40a1e7151cc576e99a22aea2f0b (diff)
[CIFS] Add support for legacy servers part six. Fix read syntax so
we do not request more than negotiated buffer size even if buffer size is small (smaller than one page) Signed-off-by: Steve French (sfrench@us.ibm.com)
Diffstat (limited to 'fs')
-rw-r--r--fs/cifs/file.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index 4173f23a71d9..3766db2bb7f2 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -1278,6 +1278,13 @@ static ssize_t cifs_read(struct file *file, char *read_data, size_t read_size,
1278 total_read += bytes_read, current_offset += bytes_read) { 1278 total_read += bytes_read, current_offset += bytes_read) {
1279 current_read_size = min_t(const int, read_size - total_read, 1279 current_read_size = min_t(const int, read_size - total_read,
1280 cifs_sb->rsize); 1280 cifs_sb->rsize);
1281 /* For windows me and 9x we do not want to request more
1282 than it negotiated since it will refuse the read then */
1283 if((pTcon->ses) &&
1284 !(pTcon->ses->capabilities & CAP_LARGE_FILES)) {
1285 current_read_size = min_t(const int, current_read_size,
1286 pTcon->ses->server->maxBuf - 128);
1287 }
1281 rc = -EAGAIN; 1288 rc = -EAGAIN;
1282 while (rc == -EAGAIN) { 1289 while (rc == -EAGAIN) {
1283 if ((open_file->invalidHandle) && 1290 if ((open_file->invalidHandle) &&