Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b8333ea1 authored by Jan Kara's avatar Jan Kara
Browse files

udf: Always require NLS support



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: default avatarJan Kara <jack@suse.cz>
parent 44f06ba8
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
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
@@ -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)
+0 −8
Original line number Diff line number Diff line
@@ -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)
@@ -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;
@@ -2117,7 +2115,6 @@ 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)
@@ -2125,7 +2122,6 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
		else
			udf_debug("Using default NLS map\n");
	}
#endif
	if (!(uopt.flags & (1 << UDF_FLAG_NLS_MAP)))
		uopt.flags |= (1 << UDF_FLAG_UTF8);

@@ -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);
@@ -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);