Commit 9599d59e authored by Shyam Prasad N's avatar Shyam Prasad N Committed by Steve French

cifs: do not pass cifs_sb when trying to add channels

The only reason why cifs_sb gets passed today to cifs_try_adding_channels
is to pass the local_nls field for the new channels and binding session.
However, the ses struct already has local_nls field that is setup during
the first cifs_setup_session. So there is no need to pass cifs_sb.

This change removes cifs_sb from the arg list for this and the functions
that it calls and uses ses->local_nls instead.

Cc: stable@vger.kernel.org
Signed-off-by: default avatarShyam Prasad N <sprasad@microsoft.com>
Reviewed-by: default avatarPaulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
parent fa1d0508
...@@ -610,7 +610,7 @@ void cifs_free_hash(struct shash_desc **sdesc); ...@@ -610,7 +610,7 @@ void cifs_free_hash(struct shash_desc **sdesc);
struct cifs_chan * struct cifs_chan *
cifs_ses_find_chan(struct cifs_ses *ses, struct TCP_Server_Info *server); cifs_ses_find_chan(struct cifs_ses *ses, struct TCP_Server_Info *server);
int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses); int cifs_try_adding_channels(struct cifs_ses *ses);
bool is_server_using_iface(struct TCP_Server_Info *server, bool is_server_using_iface(struct TCP_Server_Info *server,
struct cifs_server_iface *iface); struct cifs_server_iface *iface);
bool is_ses_using_iface(struct cifs_ses *ses, struct cifs_server_iface *iface); bool is_ses_using_iface(struct cifs_ses *ses, struct cifs_server_iface *iface);
......
...@@ -3564,7 +3564,7 @@ int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb3_fs_context *ctx) ...@@ -3564,7 +3564,7 @@ int cifs_mount(struct cifs_sb_info *cifs_sb, struct smb3_fs_context *ctx)
ctx->prepath = NULL; ctx->prepath = NULL;
out: out:
cifs_try_adding_channels(cifs_sb, mnt_ctx.ses); cifs_try_adding_channels(mnt_ctx.ses);
rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon); rc = mount_setup_tlink(cifs_sb, mnt_ctx.ses, mnt_ctx.tcon);
if (rc) if (rc)
goto error; goto error;
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#include "fs_context.h" #include "fs_context.h"
static int static int
cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses, cifs_ses_add_channel(struct cifs_ses *ses,
struct cifs_server_iface *iface); struct cifs_server_iface *iface);
bool bool
...@@ -172,7 +172,7 @@ cifs_chan_is_iface_active(struct cifs_ses *ses, ...@@ -172,7 +172,7 @@ cifs_chan_is_iface_active(struct cifs_ses *ses,
} }
/* returns number of channels added */ /* returns number of channels added */
int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses) int cifs_try_adding_channels(struct cifs_ses *ses)
{ {
struct TCP_Server_Info *server = ses->server; struct TCP_Server_Info *server = ses->server;
int old_chan_count, new_chan_count; int old_chan_count, new_chan_count;
...@@ -255,7 +255,7 @@ int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses) ...@@ -255,7 +255,7 @@ int cifs_try_adding_channels(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses)
kref_get(&iface->refcount); kref_get(&iface->refcount);
spin_unlock(&ses->iface_lock); spin_unlock(&ses->iface_lock);
rc = cifs_ses_add_channel(cifs_sb, ses, iface); rc = cifs_ses_add_channel(ses, iface);
spin_lock(&ses->iface_lock); spin_lock(&ses->iface_lock);
if (rc) { if (rc) {
...@@ -458,7 +458,7 @@ cifs_ses_find_chan(struct cifs_ses *ses, struct TCP_Server_Info *server) ...@@ -458,7 +458,7 @@ cifs_ses_find_chan(struct cifs_ses *ses, struct TCP_Server_Info *server)
} }
static int static int
cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses, cifs_ses_add_channel(struct cifs_ses *ses,
struct cifs_server_iface *iface) struct cifs_server_iface *iface)
{ {
struct TCP_Server_Info *chan_server; struct TCP_Server_Info *chan_server;
...@@ -537,7 +537,7 @@ cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses, ...@@ -537,7 +537,7 @@ cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses,
* This will be used for encoding/decoding user/domain/pw * This will be used for encoding/decoding user/domain/pw
* during sess setup auth. * during sess setup auth.
*/ */
ctx->local_nls = cifs_sb->local_nls; ctx->local_nls = ses->local_nls;
/* Use RDMA if possible */ /* Use RDMA if possible */
ctx->rdma = iface->rdma_capable; ctx->rdma = iface->rdma_capable;
...@@ -583,7 +583,7 @@ cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses, ...@@ -583,7 +583,7 @@ cifs_ses_add_channel(struct cifs_sb_info *cifs_sb, struct cifs_ses *ses,
rc = cifs_negotiate_protocol(xid, ses, chan->server); rc = cifs_negotiate_protocol(xid, ses, chan->server);
if (!rc) if (!rc)
rc = cifs_setup_session(xid, ses, chan->server, cifs_sb->local_nls); rc = cifs_setup_session(xid, ses, chan->server, ses->local_nls);
mutex_unlock(&ses->session_mutex); mutex_unlock(&ses->session_mutex);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment