SMB1 protocol supports non-UNICODE (8-bit OEM character set) and UNICODE (UTF-16) modes. Linux SMB1 client implements both of them but there are few bugs in processing non-UNICODE mode. This patch series add a new mount option -o nounicode to disable UNICODE mode and force usage of non-UNICODE (8-bit OEM character set) mode. This allows to test non-UNICODE code path against modern/recent SMB servers which implements and prefer UNICODE mode. And this patch series fixes SMB1 session setup and reading symlinks when UNICODE mode is not active. Tested against Windows Server 2022 SMB1 server and older Samba SMB1 server. Pali Rohár (5): cifs: Add new mount option -o nounicode to disable SMB1 UNICODE mode cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode cifs: Add support for SMB1 Session Setup NTLMSSP Request in non-UNICODE mode cifs: Fix parsing reparse point with native symlink in SMB1 non-UNICODE session cifs: Remove unicode parameter from parse_reparse_point() function fs/smb/client/cifsfs.c | 4 ++ fs/smb/client/cifsglob.h | 2 + fs/smb/client/cifsproto.h | 2 +- fs/smb/client/cifssmb.c | 5 ++- fs/smb/client/connect.c | 32 +++++++++++++-- fs/smb/client/fs_context.c | 11 ++++++ fs/smb/client/fs_context.h | 2 + fs/smb/client/reparse.c | 25 ++++++------ fs/smb/client/sess.c | 81 ++++++++++++++++++++++++-------------- fs/smb/client/smb1ops.c | 4 +- fs/smb/client/smb2file.c | 1 - fs/smb/client/smb2proto.h | 2 +- 12 files changed, 118 insertions(+), 53 deletions(-) -- 2.20.1