diff mbox series

fs/nls: make load_nls() take a const parameter

Message ID 20230720063414.2546451-1-wentao@uniontech.com (mailing list archive)
State New, archived
Headers show
Series fs/nls: make load_nls() take a const parameter | expand

Commit Message

Winston Wen July 20, 2023, 6:34 a.m. UTC
load_nls() take a char * parameter, use it to find nls module in list or
construct the module name to load it.

This change make load_nls() take a const parameter, so we don't need do
some cast like this:

        ses->local_nls = load_nls((char *)ctx->local_nls->charset);

Also remove the cast in cifs code.

Suggested-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Winston Wen <wentao@uniontech.com>
---
 fs/nls/nls_base.c       | 4 ++--
 fs/smb/client/connect.c | 2 +-
 include/linux/nls.h     | 2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

Comments

Paulo Alcantara July 21, 2023, 5:36 p.m. UTC | #1
Winston Wen <wentao@uniontech.com> writes:

> load_nls() take a char * parameter, use it to find nls module in list or
> construct the module name to load it.
>
> This change make load_nls() take a const parameter, so we don't need do
> some cast like this:
>
>         ses->local_nls = load_nls((char *)ctx->local_nls->charset);
>
> Also remove the cast in cifs code.
>
> Suggested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> Signed-off-by: Winston Wen <wentao@uniontech.com>
> ---
>  fs/nls/nls_base.c       | 4 ++--
>  fs/smb/client/connect.c | 2 +-
>  include/linux/nls.h     | 2 +-
>  3 files changed, 4 insertions(+), 4 deletions(-)

Changes look good, however you should probably get rid of the cifs.ko
changes in this patch and for the cifs.ko one, you could resend without
the casts.
Winston Wen July 24, 2023, 5:52 a.m. UTC | #2
On Fri, 21 Jul 2023 14:36:54 -0300
Paulo Alcantara <pc@manguebit.com> wrote:

> Winston Wen <wentao@uniontech.com> writes:
> 
> > load_nls() take a char * parameter, use it to find nls module in
> > list or construct the module name to load it.
> >
> > This change make load_nls() take a const parameter, so we don't
> > need do some cast like this:
> >
> >         ses->local_nls = load_nls((char *)ctx->local_nls->charset);
> >
> > Also remove the cast in cifs code.
> >
> > Suggested-by: Stephen Rothwell <sfr@canb.auug.org.au>
> > Signed-off-by: Winston Wen <wentao@uniontech.com>
> > ---
> >  fs/nls/nls_base.c       | 4 ++--
> >  fs/smb/client/connect.c | 2 +-
> >  include/linux/nls.h     | 2 +-
> >  3 files changed, 4 insertions(+), 4 deletions(-)  
> 
> Changes look good, however you should probably get rid of the cifs.ko
> changes in this patch and for the cifs.ko one, you could resend
> without the casts.
> 

Make sense. I've resent the patch, thanks!
diff mbox series

Patch

diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
index 52ccd34b1e79..a026dbd3593f 100644
--- a/fs/nls/nls_base.c
+++ b/fs/nls/nls_base.c
@@ -272,7 +272,7 @@  int unregister_nls(struct nls_table * nls)
 	return -EINVAL;
 }
 
-static struct nls_table *find_nls(char *charset)
+static struct nls_table *find_nls(const char *charset)
 {
 	struct nls_table *nls;
 	spin_lock(&nls_lock);
@@ -288,7 +288,7 @@  static struct nls_table *find_nls(char *charset)
 	return nls;
 }
 
-struct nls_table *load_nls(char *charset)
+struct nls_table *load_nls(const char *charset)
 {
 	return try_then_request_module(find_nls(charset), "nls_%s", charset);
 }
diff --git a/fs/smb/client/connect.c b/fs/smb/client/connect.c
index 8ad10c96e8ce..238538dde4e3 100644
--- a/fs/smb/client/connect.c
+++ b/fs/smb/client/connect.c
@@ -2290,7 +2290,7 @@  cifs_get_smb_ses(struct TCP_Server_Info *server, struct smb3_fs_context *ctx)
 
 	ses->sectype = ctx->sectype;
 	ses->sign = ctx->sign;
-	ses->local_nls = load_nls((char *)ctx->local_nls->charset);
+	ses->local_nls = load_nls(ctx->local_nls->charset);
 
 	/* add server as first channel */
 	spin_lock(&ses->chan_lock);
diff --git a/include/linux/nls.h b/include/linux/nls.h
index 499e486b3722..e0bf8367b274 100644
--- a/include/linux/nls.h
+++ b/include/linux/nls.h
@@ -47,7 +47,7 @@  enum utf16_endian {
 /* nls_base.c */
 extern int __register_nls(struct nls_table *, struct module *);
 extern int unregister_nls(struct nls_table *);
-extern struct nls_table *load_nls(char *);
+extern struct nls_table *load_nls(const char *charset);
 extern void unload_nls(struct nls_table *);
 extern struct nls_table *load_nls_default(void);
 #define register_nls(nls) __register_nls((nls), THIS_MODULE)