diff options
author | Pavel Shilovsky <pshilovsky@samba.org> | 2012-05-25 02:54:49 -0400 |
---|---|---|
committer | Steve French <smfrench@gmail.com> | 2012-07-24 11:25:03 -0400 |
commit | 58c45c58a1cbc8d2e1d07839820bf745fb3e7f41 (patch) | |
tree | 1952b449f17ef2f544fdb88240149c927bd0fc5c /fs/cifs/connect.c | |
parent | 286170aa241819f39d9d1d5d9f2434cfb8519506 (diff) |
CIFS: Move protocol specific session setup/logoff code to ops struct
Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Pavel Shilovsky <pshilovsky@samba.org>
Signed-off-by: Steve French <smfrench@gmail.com>
Diffstat (limited to 'fs/cifs/connect.c')
-rw-r--r-- | fs/cifs/connect.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 03389f59390f..444243d9232b 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -2253,7 +2253,7 @@ cifs_find_smb_ses(struct TCP_Server_Info *server, struct smb_vol *vol) | |||
2253 | static void | 2253 | static void |
2254 | cifs_put_smb_ses(struct cifs_ses *ses) | 2254 | cifs_put_smb_ses(struct cifs_ses *ses) |
2255 | { | 2255 | { |
2256 | int xid; | 2256 | unsigned int xid; |
2257 | struct TCP_Server_Info *server = ses->server; | 2257 | struct TCP_Server_Info *server = ses->server; |
2258 | 2258 | ||
2259 | cFYI(1, "%s: ses_count=%d", __func__, ses->ses_count); | 2259 | cFYI(1, "%s: ses_count=%d", __func__, ses->ses_count); |
@@ -2266,9 +2266,9 @@ cifs_put_smb_ses(struct cifs_ses *ses) | |||
2266 | list_del_init(&ses->smb_ses_list); | 2266 | list_del_init(&ses->smb_ses_list); |
2267 | spin_unlock(&cifs_tcp_ses_lock); | 2267 | spin_unlock(&cifs_tcp_ses_lock); |
2268 | 2268 | ||
2269 | if (ses->status == CifsGood) { | 2269 | if (ses->status == CifsGood && server->ops->logoff) { |
2270 | xid = GetXid(); | 2270 | xid = GetXid(); |
2271 | CIFSSMBLogoff(xid, ses); | 2271 | server->ops->logoff(xid, ses); |
2272 | _FreeXid(xid); | 2272 | _FreeXid(xid); |
2273 | } | 2273 | } |
2274 | sesInfoFree(ses); | 2274 | sesInfoFree(ses); |
@@ -3989,11 +3989,11 @@ cifs_negotiate_protocol(const unsigned int xid, struct cifs_ses *ses) | |||
3989 | return rc; | 3989 | return rc; |
3990 | } | 3990 | } |
3991 | 3991 | ||
3992 | 3992 | int | |
3993 | int cifs_setup_session(unsigned int xid, struct cifs_ses *ses, | 3993 | cifs_setup_session(const unsigned int xid, struct cifs_ses *ses, |
3994 | struct nls_table *nls_info) | 3994 | struct nls_table *nls_info) |
3995 | { | 3995 | { |
3996 | int rc = 0; | 3996 | int rc = -ENOSYS; |
3997 | struct TCP_Server_Info *server = ses->server; | 3997 | struct TCP_Server_Info *server = ses->server; |
3998 | 3998 | ||
3999 | ses->flags = 0; | 3999 | ses->flags = 0; |
@@ -4004,7 +4004,9 @@ int cifs_setup_session(unsigned int xid, struct cifs_ses *ses, | |||
4004 | cFYI(1, "Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d", | 4004 | cFYI(1, "Security Mode: 0x%x Capabilities: 0x%x TimeAdjust: %d", |
4005 | server->sec_mode, server->capabilities, server->timeAdj); | 4005 | server->sec_mode, server->capabilities, server->timeAdj); |
4006 | 4006 | ||
4007 | rc = CIFS_SessSetup(xid, ses, nls_info); | 4007 | if (server->ops->sess_setup) |
4008 | rc = server->ops->sess_setup(xid, ses, nls_info); | ||
4009 | |||
4008 | if (rc) { | 4010 | if (rc) { |
4009 | cERROR(1, "Send error in SessSetup = %d", rc); | 4011 | cERROR(1, "Send error in SessSetup = %d", rc); |
4010 | } else { | 4012 | } else { |