| From 8d33096a460d5b9bd13300f01615df5bb454db10 Mon Sep 17 00:00:00 2001 |
| From: Steve French <stfrench@microsoft.com> |
| Date: Thu, 25 Jul 2019 18:13:10 -0500 |
| Subject: smb3: send CAP_DFS capability during session setup |
| |
| From: Steve French <stfrench@microsoft.com> |
| |
| commit 8d33096a460d5b9bd13300f01615df5bb454db10 upstream. |
| |
| We had a report of a server which did not do a DFS referral |
| because the session setup Capabilities field was set to 0 |
| (unlike negotiate protocol where we set CAP_DFS). Better to |
| send it session setup in the capabilities as well (this also |
| more closely matches Windows client behavior). |
| |
| Signed-off-by: Steve French <stfrench@microsoft.com> |
| Reviewed-off-by: Ronnie Sahlberg <lsahlber@redhat.com> |
| Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com> |
| CC: Stable <stable@vger.kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| fs/cifs/smb2pdu.c | 5 +++++ |
| 1 file changed, 5 insertions(+) |
| |
| --- a/fs/cifs/smb2pdu.c |
| +++ b/fs/cifs/smb2pdu.c |
| @@ -834,7 +834,12 @@ SMB2_sess_alloc_buffer(struct SMB2_sess_ |
| else |
| req->SecurityMode = 0; |
| |
| +#ifdef CONFIG_CIFS_DFS_UPCALL |
| + req->Capabilities = cpu_to_le32(SMB2_GLOBAL_CAP_DFS); |
| +#else |
| req->Capabilities = 0; |
| +#endif /* DFS_UPCALL */ |
| + |
| req->Channel = 0; /* MBZ */ |
| |
| sess_data->iov[0].iov_base = (char *)req; |