提交 a5fc4ce0 编写于 作者: J Jeff Layton 提交者: Steve French

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: NJeff Layton <jlayton@redhat.com>
Signed-off-by: NSteve French <sfrench@us.ibm.com>
上级 fa588e0c
...@@ -102,6 +102,7 @@ struct smb_vol { ...@@ -102,6 +102,7 @@ struct smb_vol {
bool sockopt_tcp_nodelay:1; bool sockopt_tcp_nodelay:1;
unsigned short int port; unsigned short int port;
char *prepath; char *prepath;
struct nls_table *local_nls;
}; };
static int ipv4_connect(struct TCP_Server_Info *server); 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, ...@@ -2353,20 +2354,20 @@ cifs_mount(struct super_block *sb, struct cifs_sb_info *cifs_sb,
goto out; goto out;
} }
/* this is needed for ASCII cp to Unicode converts */ /* this is needed for ASCII cp to Unicode converts */
if (volume_info->iocharset == NULL) { if (volume_info->iocharset == NULL) {
cifs_sb->local_nls = load_nls_default(); /* load_nls_default cannot return null */
/* load_nls_default can not return null */ volume_info->local_nls = load_nls_default();
} else { } else {
cifs_sb->local_nls = load_nls(volume_info->iocharset); volume_info->local_nls = load_nls(volume_info->iocharset);
if (cifs_sb->local_nls == NULL) { if (volume_info->local_nls == NULL) {
cERROR(1, "CIFS mount error: iocharset %s not found", cERROR(1, "CIFS mount error: iocharset %s not found",
volume_info->iocharset); volume_info->iocharset);
rc = -ELIBACC; rc = -ELIBACC;
goto out; goto out;
} }
} }
cifs_sb->local_nls = volume_info->local_nls;
/* get a reference to a tcp session */ /* get a reference to a tcp session */
srvTcp = cifs_get_tcp_session(volume_info); srvTcp = cifs_get_tcp_session(volume_info);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册