diff options
| author | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
|---|---|---|
| committer | Mark Brown <[email protected]> | 2015-10-12 18:09:27 +0100 | 
| commit | 79828b4fa835f73cdaf4bffa48696abdcbea9d02 (patch) | |
| tree | 5e0fa7156acb75ba603022bc807df8f2fedb97a8 /fs/udf/super.c | |
| parent | 721b51fcf91898299d96f4b72cb9434cda29dce6 (diff) | |
| parent | 8c1a9d6323abf0fb1e5dad96cf3f1c783505ea5a (diff) | |
Merge remote-tracking branch 'asoc/fix/rt5645' into asoc-fix-rt5645
Diffstat (limited to 'fs/udf/super.c')
| -rw-r--r-- | fs/udf/super.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c index b96f190bc567..81155b9b445b 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c @@ -2070,6 +2070,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)  	struct udf_options uopt;  	struct kernel_lb_addr rootdir, fileset;  	struct udf_sb_info *sbi; +	bool lvid_open = false;  	uopt.flags = (1 << UDF_FLAG_USE_AD_IN_ICB) | (1 << UDF_FLAG_STRICT);  	uopt.uid = INVALID_UID; @@ -2216,8 +2217,10 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent)  			 le16_to_cpu(ts.year), ts.month, ts.day,  			 ts.hour, ts.minute, le16_to_cpu(ts.typeAndTimezone));  	} -	if (!(sb->s_flags & MS_RDONLY)) +	if (!(sb->s_flags & MS_RDONLY)) {  		udf_open_lvid(sb); +		lvid_open = true; +	}  	/* Assign the root inode */  	/* assign inodes by physical block number */ @@ -2248,7 +2251,7 @@ parse_options_failure:  	if (UDF_QUERY_FLAG(sb, UDF_FLAG_NLS_MAP))  		unload_nls(sbi->s_nls_map);  #endif -	if (!(sb->s_flags & MS_RDONLY)) +	if (lvid_open)  		udf_close_lvid(sb);  	brelse(sbi->s_lvid_bh);  	udf_sb_free_partitions(sb);  |