Merge branch 'perf/rbtree_copy' of git://git.kernel.org/pub/scm/linux/kernel/git...
[firefly-linux-kernel-4.4.55.git] / fs / cifs / connect.c
index 8383d5ea42028dac6788e642b6c3ed0f61459d51..773f4dc776305284f4df53e4d4e44741a74b467f 100644 (file)
@@ -280,6 +280,11 @@ static const match_table_t cifs_smb_version_tokens = {
        { Smb_21, SMB21_VERSION_STRING },
        { Smb_30, SMB30_VERSION_STRING },
        { Smb_302, SMB302_VERSION_STRING },
+#ifdef CONFIG_CIFS_SMB311
+       { Smb_311, SMB311_VERSION_STRING },
+       { Smb_311, ALT_SMB311_VERSION_STRING },
+#endif /* SMB311 */
+       { Smb_version_err, NULL }
 };
 
 static int ip_connect(struct TCP_Server_Info *server);
@@ -1133,6 +1138,12 @@ cifs_parse_smb_version(char *value, struct smb_vol *vol)
                vol->ops = &smb30_operations; /* currently identical with 3.0 */
                vol->vals = &smb302_values;
                break;
+#ifdef CONFIG_CIFS_SMB311
+       case Smb_311:
+               vol->ops = &smb311_operations;
+               vol->vals = &smb311_values;
+               break;
+#endif /* SMB311 */
 #endif
        default:
                cifs_dbg(VFS, "Unknown vers= option specified: %s\n", value);
@@ -3461,6 +3472,8 @@ try_mount_again:
                else if (ses)
                        cifs_put_smb_ses(ses);
 
+               cifs_sb->mnt_cifs_flags &= ~CIFS_MOUNT_POSIX_PATHS;
+
                free_xid(xid);
        }
 #endif