OSDN Git Service

Fix match_server check to allow for auto dialect negotiate
authorSteve French <stfrench@microsoft.com>
Thu, 13 Jun 2019 19:26:49 +0000 (14:26 -0500)
committerSteve French <stfrench@microsoft.com>
Mon, 8 Jul 2019 03:37:42 +0000 (22:37 -0500)
commit43cdae88de2e8ec101961708ef7e51ba96776035
tree87ff14ba952874406dc968e6fce70c1eb0ab4e62
parent5fc3681fa5ed5cbbe70592967dcfa8f0848f75c0
Fix match_server check to allow for auto dialect negotiate

When using multidialect negotiate (default or specifying vers=3.0 which
allows any smb3 dialect), fix how we check for an existing server session.
Before this fix if you mounted a second time to the same server (e.g. a
different share on the same server) we would only reuse the existing smb
session if a single dialect were requested (e.g. specifying vers=2.1 or vers=3.0
or vers=3.1.1 on the mount command). If a default mount (e.g. not
specifying vers=) is done then would always create a new socket connection
and SMB3 (or SMB3.1.1) session each time we connect to a different share
on the same server rather than reusing the existing one.

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Pavel Shilovsky <pshilov@microsoft.com>
fs/cifs/connect.c
fs/cifs/smb1ops.c
fs/cifs/smb2pdu.h