ext2: add missing brelse in ext2_new_blocks()

Fix missing brelse of bitmap_bh in the case of retry.

Link: https://lore.kernel.org/r/20191022091738.9160-1-cgxu519@mykernel.net
Signed-off-by: Chengguang Xu <cgxu519@mykernel.net>
Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Chengguang Xu 2019-10-22 17:17:38 +08:00 committed by Jan Kara
parent 158be76c01
commit ba1af2e474
1 changed files with 7 additions and 0 deletions

View File

@ -1313,6 +1313,13 @@ retry_alloc:
if (free_blocks > 0) {
grp_target_blk = ((goal - le32_to_cpu(es->s_first_data_block)) %
EXT2_BLOCKS_PER_GROUP(sb));
/*
* In case we retry allocation (due to fs reservation not
* working out or fs corruption), the bitmap_bh is non-null
* pointer and we have to release it before calling
* read_block_bitmap().
*/
brelse(bitmap_bh);
bitmap_bh = read_block_bitmap(sb, group_no);
if (!bitmap_bh)
goto io_error;