Skip to content

Commit

Permalink
cifs: track local_nls in volume info
Browse files Browse the repository at this point in the history
Add a local_nls field to the smb_vol struct and keep a pointer to the
local_nls in it.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
  • Loading branch information
Jeff Layton authored and Steve French committed Apr 26, 2010
1 parent fa588e0 commit a5fc4ce
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions fs/cifs/connect.c
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ struct smb_vol {
bool sockopt_tcp_nodelay:1;
unsigned short int port;
char *prepath;
struct nls_table *local_nls;
};

static int ipv4_connect(struct TCP_Server_Info *server);
Expand Down Expand Up @@ -2353,20 +2354,20 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
goto out;
}


/* this is needed for ASCII cp to Unicode converts */
if (volume_info->iocharset == NULL) {
cifs_sb->local_nls = load_nls_default();
/* load_nls_default can not return null */
/* load_nls_default cannot return null */
volume_info->local_nls = load_nls_default();
} else {
cifs_sb->local_nls = load_nls(volume_info->iocharset);
if (cifs_sb->local_nls == NULL) {
volume_info->local_nls = load_nls(volume_info->iocharset);
if (volume_info->local_nls == NULL) {
cERROR(1, "CIFS mount error: iocharset %s not found",
volume_info->iocharset);
rc = -ELIBACC;
goto out;
}
}
cifs_sb->local_nls = volume_info->local_nls;

/* get a reference to a tcp session */
srvTcp = cifs_get_tcp_session(volume_info);
Expand Down

0 comments on commit a5fc4ce

Please sign in to comment.