summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve French <stfrench@microsoft.com>2018-06-18 14:01:59 -0500
committerSteve French <stfrench@microsoft.com>2018-08-07 14:15:41 -0500
commit8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2 (patch)
tree85e29ad60403545fce8c77f75be0bfa9668c430a
parentcbedeadf9c44a1a135293717d501882f2933a534 (diff)
downloadlinux-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.c8
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 */