瀏覽代碼

[CIFS] Missing flags2 for DFS

Partly suggested by Igor Mammedov

Signed-off-by: Steve French <sfrench@us.ibm.com>
Steve French 18 年之前
父節點
當前提交
1a4e15a04e
共有 2 個文件被更改,包括 11 次插入1 次删除
  1. 8 0
      fs/cifs/cifssmb.c
  2. 3 1
      fs/cifs/connect.c

+ 8 - 0
fs/cifs/cifssmb.c

@@ -3675,6 +3675,14 @@ getDFSRetry:
 		strncpy(pSMB->RequestFileName, searchName, name_len);
 	}
 
+	if(ses->server) {
+		if(ses->server->secMode &
+		   (SECMODE_SIGN_REQUIRED | SECMODE_SIGN_ENABLED))
+			pSMB->hdr.Flags2 |= SMBFLG2_SECURITY_SIGNATURE;
+	}
+
+        pSMB->hdr.Uid = ses->Suid;
+
 	params = 2 /* level */  + name_len /*includes null */ ;
 	pSMB->TotalDataCount = 0;
 	pSMB->DataCount = 0;

+ 3 - 1
fs/cifs/connect.c

@@ -3219,7 +3219,9 @@ CIFSTCon(unsigned int xid, struct cifsSesInfo *ses,
 			}
 			/* else do not bother copying these informational fields */
 		}
-		if(smb_buffer_response->WordCount == 3)
+		if((smb_buffer_response->WordCount == 3) ||
+			 (smb_buffer_response->WordCount == 7))
+			/* field is in same location */
 			tcon->Flags = le16_to_cpu(pSMBr->OptionalSupport);
 		else
 			tcon->Flags = 0;