aboutsummaryrefslogtreecommitdiffstats
path: root/fs/udf
diff options
context:
space:
mode:
authorMarkus Elfring <elfring@users.sourceforge.net>2014-11-18 12:29:10 -0500
committerJan Kara <jack@suse.cz>2014-11-19 15:56:06 -0500
commitfdf2657bc81b10dee856ec9f8fe5b201c0561e9d (patch)
treeaa18d17b2dc3153080b0aa5f864d467992e52c59 /fs/udf
parent0d454e4a443178863f858cdafac870ceb1989407 (diff)
udf: One function call less in udf_fill_super() after error detection
The iput() function was called in up to three cases by the udf_fill_super() function during error handling even if the passed data structure element contained still a null pointer. This implementation detail could be improved by the introduction of another jump label. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/udf')
-rw-r--r--fs/udf/super.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c
index f93c65d6c7d9..3ccb2f11fc76 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -2082,12 +2082,12 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
2082 mutex_init(&sbi->s_alloc_mutex); 2082 mutex_init(&sbi->s_alloc_mutex);
2083 2083
2084 if (!udf_parse_options((char *)options, &uopt, false)) 2084 if (!udf_parse_options((char *)options, &uopt, false))
2085 goto error_out; 2085 goto parse_options_failure;
2086 2086
2087 if (uopt.flags & (1 << UDF_FLAG_UTF8) && 2087 if (uopt.flags & (1 << UDF_FLAG_UTF8) &&
2088 uopt.flags & (1 << UDF_FLAG_NLS_MAP)) { 2088 uopt.flags & (1 << UDF_FLAG_NLS_MAP)) {
2089 udf_err(sb, "utf8 cannot be combined with iocharset\n"); 2089 udf_err(sb, "utf8 cannot be combined with iocharset\n");
2090 goto error_out; 2090 goto parse_options_failure;
2091 } 2091 }
2092#ifdef CONFIG_UDF_NLS 2092#ifdef CONFIG_UDF_NLS
2093 if ((uopt.flags & (1 << UDF_FLAG_NLS_MAP)) && !uopt.nls_map) { 2093 if ((uopt.flags & (1 << UDF_FLAG_NLS_MAP)) && !uopt.nls_map) {
@@ -2238,6 +2238,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)
2238 2238
2239error_out: 2239error_out:
2240 iput(sbi->s_vat_inode); 2240 iput(sbi->s_vat_inode);
2241parse_options_failure:
2241#ifdef CONFIG_UDF_NLS 2242#ifdef CONFIG_UDF_NLS
2242 if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP)) 2243 if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP))
2243 unload_nls(sbi->s_nls_map); 2244 unload_nls(sbi->s_nls_map);