[CIFS] Add support for legacy servers part six. Fix read syntax so
authorSteve French <sfrench@us.ibm.com>
Fri, 16 Sep 2005 06:06:38 +0000 (23:06 -0700)
committerSteve French <sfrench@us.ibm.com>
Fri, 16 Sep 2005 06:06:38 +0000 (23:06 -0700)
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)
fs/cifs/file.c

index 4173f23..3766db2 100644 (file)
@@ -1278,6 +1278,13 @@ static ssize_t cifs_read(struct file *file, char *read_data, size_t read_size,
             total_read += bytes_read, current_offset += bytes_read) {
                current_read_size = min_t(const int, read_size - total_read,
                                          cifs_sb->rsize);
+               /* For windows me and 9x we do not want to request more
+               than it negotiated since it will refuse the read then */
+               if((pTcon->ses) && 
+                       !(pTcon->ses->capabilities & CAP_LARGE_FILES)) {
+                       current_read_size = min_t(const int, current_read_size,
+                                       pTcon->ses->server->maxBuf - 128);
+               }
                rc = -EAGAIN;
                while (rc == -EAGAIN) {
                        if ((open_file->invalidHandle) &&