mirror of https://gitee.com/openkylin/linux.git
cifs: track local_nls in volume info
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>
This commit is contained in:
parent
fa588e0c57
commit
a5fc4ce018
|
@ -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);
|
||||
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue