Skip to content

Commit

Permalink
udf: Always require NLS support
Browse files Browse the repository at this point in the history
UDF needs to convert strings between OSTA CS0 charset and standard UTF8.
Currently we implement our own utf-16 <-> utf-8 translations which is
unnecessary code duplication. Always select NLS so that we can use
translation functions from there.

Signed-off-by: Jan Kara <[email protected]>
  • Loading branch information
jankara committed Apr 19, 2018
1 parent 44f06ba commit b8333ea
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 13 deletions.
6 changes: 1 addition & 5 deletions fs/udf/Kconfig
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
config UDF_FS
tristate "UDF file system support"
select CRC_ITU_T
select NLS
help
This is a file system used on some CD-ROMs and DVDs. Since the
file system is supported by multiple operating systems and is more
Expand All @@ -13,8 +14,3 @@ config UDF_FS
module will be called udf.

If unsure, say N.

config UDF_NLS
bool
default y
depends on (UDF_FS=m && NLS) || (UDF_FS=y && NLS=y)
8 changes: 0 additions & 8 deletions fs/udf/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -572,7 +572,6 @@ static int udf_parse_options(char *options, struct udf_options *uopt,
case Opt_utf8:
uopt->flags |= (1 << UDF_FLAG_UTF8);
break;
#ifdef CONFIG_UDF_NLS
case Opt_iocharset:
if (!remount) {
if (uopt->nls_map)
Expand All @@ -581,7 +580,6 @@ static int udf_parse_options(char *options, struct udf_options *uopt,
uopt->flags |= (1 << UDF_FLAG_NLS_MAP);
}
break;
#endif
case Opt_uforget:
uopt->flags |= (1 << UDF_FLAG_UID_FORGET);
break;
Expand Down Expand Up @@ -2117,15 +2115,13 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
udf_err(sb, "utf8 cannot be combined with iocharset\n");
goto parse_options_failure;
}
#ifdef CONFIG_UDF_NLS
if ((uopt.flags & (1 << UDF_FLAG_NLS_MAP)) && !uopt.nls_map) {
uopt.nls_map = load_nls_default();
if (!uopt.nls_map)
uopt.flags &= ~(1 << UDF_FLAG_NLS_MAP);
else
udf_debug("Using default NLS map\n");
}
#endif
if (!(uopt.flags & (1 << UDF_FLAG_NLS_MAP)))
uopt.flags |= (1 << UDF_FLAG_UTF8);

Expand Down Expand Up @@ -2279,10 +2275,8 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
error_out:
iput(sbi->s_vat_inode);
parse_options_failure:
#ifdef CONFIG_UDF_NLS
if (uopt.nls_map)
unload_nls(uopt.nls_map);
#endif
if (lvid_open)
udf_close_lvid(sb);
brelse(sbi->s_lvid_bh);
Expand Down Expand Up @@ -2332,10 +2326,8 @@ static void udf_put_super(struct super_block *sb)
sbi = UDF_SB(sb);

iput(sbi->s_vat_inode);
#ifdef CONFIG_UDF_NLS
if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP))
unload_nls(sbi->s_nls_map);
#endif
if (!sb_rdonly(sb))
udf_close_lvid(sb);
brelse(sbi->s_lvid_bh);
Expand Down

0 comments on commit b8333ea

Please sign in to comment.