diff options
author | Steve French <stfrench@microsoft.com> | 2018-06-18 14:01:59 -0500 |
---|---|---|
committer | Steve French <stfrench@microsoft.com> | 2018-08-07 14:15:41 -0500 |
commit | 8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2 (patch) | |
tree | 85e29ad60403545fce8c77f75be0bfa9668c430a | |
parent | cbedeadf9c44a1a135293717d501882f2933a534 (diff) | |
download | linux-stable-8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2.tar.gz linux-stable-8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2.tar.bz2 linux-stable-8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2.zip |
smb3: if server does not support posix do not allow posix mount option
If user specifies "posix" on an SMB3.11 mount, then fail the mount
if server does not return the POSIX negotiate context indicating
support for posix.
Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Aurelien Aptel <aaptel@suse.com>
-rw-r--r-- | fs/cifs/connect.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 5df2c0698cda..9d02563b2147 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -3031,11 +3031,15 @@ cifs_get_tcon(struct cifs_ses *ses, struct smb_vol *volume_info) } #ifdef CONFIG_CIFS_SMB311 - if ((volume_info->linux_ext) && (ses->server->posix_ext_supported)) { - if (ses->server->vals->protocol_id == SMB311_PROT_ID) { + if (volume_info->linux_ext) { + if (ses->server->posix_ext_supported) { tcon->posix_extensions = true; printk_once(KERN_WARNING "SMB3.11 POSIX Extensions are experimental\n"); + } else { + cifs_dbg(VFS, "Server does not support mounting with posix SMB3.11 extensions.\n"); + rc = -EOPNOTSUPP; + goto out_fail; } } #endif /* 311 */ |