| From 806a28efe9b78ffae5e2757e1ee924b8e50c08ab Mon Sep 17 00:00:00 2001 |
| From: Jan-Marek Glogowski <glogow@fbihome.de> |
| Date: Mon, 20 Feb 2017 12:25:58 +0100 |
| Subject: Reset TreeId to zero on SMB2 TREE_CONNECT |
| |
| From: Jan-Marek Glogowski <glogow@fbihome.de> |
| |
| commit 806a28efe9b78ffae5e2757e1ee924b8e50c08ab upstream. |
| |
| Currently the cifs module breaks the CIFS specs on reconnect as |
| described in http://msdn.microsoft.com/en-us/library/cc246529.aspx: |
| |
| "TreeId (4 bytes): Uniquely identifies the tree connect for the |
| command. This MUST be 0 for the SMB2 TREE_CONNECT Request." |
| |
| Signed-off-by: Jan-Marek Glogowski <glogow@fbihome.de> |
| Reviewed-by: Aurelien Aptel <aaptel@suse.com> |
| Tested-by: Aurelien Aptel <aaptel@suse.com> |
| Signed-off-by: Steve French <smfrench@gmail.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/cifs/smb2pdu.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/fs/cifs/smb2pdu.c |
| +++ b/fs/cifs/smb2pdu.c |
| @@ -952,6 +952,10 @@ SMB2_tcon(const unsigned int xid, struct |
| return -EINVAL; |
| } |
| |
| + /* SMB2 TREE_CONNECT request must be called with TreeId == 0 */ |
| + if (tcon) |
| + tcon->tid = 0; |
| + |
| rc = small_smb2_init(SMB2_TREE_CONNECT, tcon, (void **) &req); |
| if (rc) { |
| kfree(unc_path); |