CIFS: Fix incorrect max RFC1002 write size value
authorPavel Shilovsky <piastry@etersoft.ru>
Fri, 7 Oct 2011 14:57:45 +0000 (18:57 +0400)
committerSteve French <smfrench@gmail.com>
Thu, 13 Oct 2011 20:20:14 +0000 (15:20 -0500)
..the length field has only 17 bits.

Cc: <stable@kernel.org>
Acked-by: Jeff Layton <jlayton@samba.org>
Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Steve French <smfrench@gmail.com>
fs/cifs/connect.c

index ff47c1842becdc56720362a81930b5fbfd7ff66d..82bc0d27e495dc69bb46f052e0caae9a4e4bb5d5 100644 (file)
@@ -2809,10 +2809,10 @@ void cifs_setup_cifs_sb(struct smb_vol *pvolume_info,
 
 /*
  * When the server doesn't allow large posix writes, only allow a wsize of
- * 128k minus the size of the WRITE_AND_X header. That allows for a write up
+ * 2^17-1 minus the size of the WRITE_AND_X header. That allows for a write up
  * to the maximum size described by RFC1002.
  */
-#define CIFS_MAX_RFC1002_WSIZE (128 * 1024 - sizeof(WRITE_REQ) + 4)
+#define CIFS_MAX_RFC1002_WSIZE ((1<<17) - 1 - sizeof(WRITE_REQ) + 4)
 
 /*
  * The default wsize is 1M. find_get_pages seems to return a maximum of 256