|
@@ -102,6 +102,7 @@ struct smb_vol {
|
|
|
bool fsc:1; /* enable fscache */
|
|
|
bool mfsymlinks:1; /* use Minshall+French Symlinks */
|
|
|
bool multiuser:1;
|
|
|
+ bool use_smb2:1; /* force smb2 use on mount instead of cifs */
|
|
|
unsigned int rsize;
|
|
|
unsigned int wsize;
|
|
|
bool sockopt_tcp_nodelay:1;
|
|
@@ -1038,6 +1039,22 @@ cifs_parse_mount_options(char *options, const char *devname,
|
|
|
cERROR(1, "bad security option: %s", value);
|
|
|
return 1;
|
|
|
}
|
|
|
+ } else if (strnicmp(data, "vers", 3) == 0) {
|
|
|
+ if (!value || !*value) {
|
|
|
+ cERROR(1, "no protocol version specified"
|
|
|
+ " after vers= mount option");
|
|
|
+ } else if ((strnicmp(value, "cifs", 4) == 0) ||
|
|
|
+ (strnicmp(value, "1", 1) == 0)) {
|
|
|
+ /* this is the default */
|
|
|
+ continue;
|
|
|
+ } else if ((strnicmp(value, "smb2", 4) == 0) ||
|
|
|
+ (strnicmp(value, "2", 1) == 0)) {
|
|
|
+#ifdef CONFIG_CIFS_SMB2
|
|
|
+ vol->use_smb2 = true;
|
|
|
+#else
|
|
|
+ cERROR(1, "smb2 support not enabled");
|
|
|
+#endif /* CONFIG_CIFS_SMB2 */
|
|
|
+ }
|
|
|
} else if ((strnicmp(data, "unc", 3) == 0)
|
|
|
|| (strnicmp(data, "target", 6) == 0)
|
|
|
|| (strnicmp(data, "path", 4) == 0)) {
|