Skip to content

Commit d64264d

Browse files
Lukas Czernertytso
authored andcommitted
ext4: add missing brelse() in add_new_gdb_meta_bg()
Currently in add_new_gdb_meta_bg() there is a missing brelse of gdb_bh in case ext4_journal_get_write_access() fails. Additionally kvfree() is missing in the same error path. Fix it by moving the ext4_journal_get_write_access() before the ext4 sb update as Ted suggested and release n_group_desc and gdb_bh in case it fails. Fixes: 61a9c11 ("ext4: add missing brelse() add_new_gdb_meta_bg()'s error path") Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
1 parent 7cf7714 commit d64264d

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

fs/ext4/resize.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -932,11 +932,18 @@ static int add_new_gdb_meta_bg(struct super_block *sb,
932932
memcpy(n_group_desc, o_group_desc,
933933
EXT4_SB(sb)->s_gdb_count * sizeof(struct buffer_head *));
934934
n_group_desc[gdb_num] = gdb_bh;
935+
936+
BUFFER_TRACE(gdb_bh, "get_write_access");
937+
err = ext4_journal_get_write_access(handle, gdb_bh);
938+
if (err) {
939+
kvfree(n_group_desc);
940+
brelse(gdb_bh);
941+
return err;
942+
}
943+
935944
EXT4_SB(sb)->s_group_desc = n_group_desc;
936945
EXT4_SB(sb)->s_gdb_count++;
937946
kvfree(o_group_desc);
938-
BUFFER_TRACE(gdb_bh, "get_write_access");
939-
err = ext4_journal_get_write_access(handle, gdb_bh);
940947
return err;
941948
}
942949

0 commit comments

Comments
 (0)