From: Steve French Date: Mon, 18 Jun 2018 19:01:59 +0000 (-0500) Subject: smb3: if server does not support posix do not allow posix mount option X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=8505c8bfd85a260c9dc5c47e15bd8c5357fcbcd2;p=linux.git 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 Reviewed-by: Aurelien Aptel --- diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 5df2c0698cda7..9d02563b2147e 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 */