Message ID | 1523948733-8537-2-git-send-email-cgxu519@gmx.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, 2018-04-17 at 15:05 +0800, Chengguang Xu wrote: > When specifying nls option multiple times in a mount, > current option parsing will cause inaccurate refcount of nls > module. Hence, call unload_nls for previous one in this case. > > Signed-off-by: Chengguang Xu <cgxu519@gmx.com> Looks good. Reviewed-by: Vyacheslav Dubeyko <slava@dubeyko.com> Thanks, Vyacheslav Dubeyko. > --- > fs/hfsplus/options.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c > index 047e05c..068d4e2 100644 > --- a/fs/hfsplus/options.c > +++ b/fs/hfsplus/options.c > @@ -171,8 +171,10 @@ int hfsplus_parse_options(char *input, struct > hfsplus_sb_info *sbi) > return 0; > } > p = match_strdup(&args[0]); > - if (p) > + if (p) { > + unload_nls(sbi->nls); > sbi->nls = load_nls(p); > + } > if (!sbi->nls) { > pr_err("unable to load nls mapping > \"%s\"\n", > p);
On Tue, 17 Apr 2018 15:05:33 +0800 Chengguang Xu <cgxu519@gmx.com> wrote: > When specifying nls option multiple times in a mount, > current option parsing will cause inaccurate refcount of nls > module. Hence, call unload_nls for previous one in this case. > > --- a/fs/hfsplus/options.c > +++ b/fs/hfsplus/options.c > @@ -171,8 +171,10 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi) > return 0; > } > p = match_strdup(&args[0]); > - if (p) > + if (p) { > + unload_nls(sbi->nls); > sbi->nls = load_nls(p); > + } > if (!sbi->nls) { > pr_err("unable to load nls mapping \"%s\"\n", > p); Same problem as in [patch 1/2]
diff --git a/fs/hfsplus/options.c b/fs/hfsplus/options.c index 047e05c..068d4e2 100644 --- a/fs/hfsplus/options.c +++ b/fs/hfsplus/options.c @@ -171,8 +171,10 @@ int hfsplus_parse_options(char *input, struct hfsplus_sb_info *sbi) return 0; } p = match_strdup(&args[0]); - if (p) + if (p) { + unload_nls(sbi->nls); sbi->nls = load_nls(p); + } if (!sbi->nls) { pr_err("unable to load nls mapping \"%s\"\n", p);
When specifying nls option multiple times in a mount, current option parsing will cause inaccurate refcount of nls module. Hence, call unload_nls for previous one in this case. Signed-off-by: Chengguang Xu <cgxu519@gmx.com> --- fs/hfsplus/options.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)