diff options
author | Markus Elfring <elfring@users.sourceforge.net> | 2014-11-18 18:29:10 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2014-11-19 21:56:06 +0100 |
commit | fdf2657bc81b10dee856ec9f8fe5b201c0561e9d (patch) | |
tree | aa18d17b2dc3153080b0aa5f864d467992e52c59 | |
parent | 0d454e4a443178863f858cdafac870ceb1989407 (diff) | |
download | linux-stable-fdf2657bc81b10dee856ec9f8fe5b201c0561e9d.tar.gz linux-stable-fdf2657bc81b10dee856ec9f8fe5b201c0561e9d.tar.bz2 linux-stable-fdf2657bc81b10dee856ec9f8fe5b201c0561e9d.zip |
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>
-rw-r--r-- | fs/udf/super.c | 5 |
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) mutex_init(&sbi->s_alloc_mutex); if (!udf_parse_options((char *)options, &uopt, false)) - goto error_out; + goto parse_options_failure; if (uopt.flags & (1 << UDF_FLAG_UTF8) && uopt.flags & (1 << UDF_FLAG_NLS_MAP)) { udf_err(sb, "utf8 cannot be combined with iocharset\n"); - goto error_out; + goto parse_options_failure; } #ifdef CONFIG_UDF_NLS 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) error_out: iput(sbi->s_vat_inode); +parse_options_failure: #ifdef CONFIG_UDF_NLS if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP)) unload_nls(sbi->s_nls_map); |