forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CIFS: Introduce SMB2 mounts as vers=2.1
As with Linux nfs client, which uses "nfsvers=" or "vers=" to indicate which protocol to use for mount, specifying "vers=2.1" will force an SMB2 mount. When vers is not specified CIFS is used "vers=1" We can eventually autonegotiate down from SMB2 to CIFS when SMB2 is stable enough to make it the default, but this is for the future. At that time we could also implement a "maxprotocol" mount option as smbclient and Samba have today, but that would be premature until SMB2 is stable. Intially the SMB2 Kconfig option will depend on "BROKEN" until the merge is complete, and then be "EXPERIMENTAL" When it is no longer experimental we can consider changing the default protocol to attempt first. Signed-off-by: Pavel Shilovsky <[email protected]> Signed-off-by: Jeff Layton <[email protected]> Acked-by: Shirish Pargaonkar <[email protected]> Signed-off-by: Steve French <[email protected]>
- Loading branch information
Showing
4 changed files
with
41 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
/* | ||
* fs/cifs/connect.c | ||
* | ||
* Copyright (C) International Business Machines Corp., 2002,2009 | ||
* Copyright (C) International Business Machines Corp., 2002,2011 | ||
* Author(s): Steve French ([email protected]) | ||
* | ||
* This library is free software; you can redistribute it and/or modify | ||
|
@@ -278,6 +278,7 @@ static const match_table_t cifs_cacheflavor_tokens = { | |
|
||
static const match_table_t cifs_smb_version_tokens = { | ||
{ Smb_1, SMB1_VERSION_STRING }, | ||
{ Smb_21, SMB21_VERSION_STRING }, | ||
}; | ||
|
||
static int ip_connect(struct TCP_Server_Info *server); | ||
|
@@ -1221,6 +1222,12 @@ cifs_parse_smb_version(char *value, struct smb_vol *vol) | |
vol->ops = &smb1_operations; | ||
vol->vals = &smb1_values; | ||
break; | ||
#ifdef CONFIG_CIFS_SMB2 | ||
case Smb_21: | ||
vol->ops = &smb21_operations; | ||
vol->vals = &smb21_values; | ||
break; | ||
#endif | ||
default: | ||
cERROR(1, "Unknown vers= option specified: %s", value); | ||
return 1; | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
/* | ||
* SMB2 version specific operations | ||
* | ||
* Copyright (c) 2012, Jeff Layton <[email protected]> | ||
* | ||
* This library is free software; you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License v2 as published | ||
* by the Free Software Foundation. | ||
* | ||
* This library is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See | ||
* the GNU Lesser General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU Lesser General Public License | ||
* along with this library; if not, write to the Free Software | ||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
*/ | ||
|
||
#include "cifsglob.h" | ||
|
||
struct smb_version_operations smb21_operations = { | ||
}; | ||
|
||
struct smb_version_values smb21_values = { | ||
.version_string = SMB21_VERSION_STRING, | ||
}; |