From: Stephen Tweedie Make sure that verify_group_input() brelse's the buffer we're verifying in every case. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton --- 25-akpm/fs/ext3/resize.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff -puN fs/ext3/resize.c~ext3-online-resize-fix-bh-leak fs/ext3/resize.c --- 25/fs/ext3/resize.c~ext3-online-resize-fix-bh-leak Thu Sep 30 17:32:40 2004 +++ 25-akpm/fs/ext3/resize.c Thu Sep 30 17:32:40 2004 @@ -36,7 +36,7 @@ static int verify_group_input(struct sup (1 + ext3_bg_num_gdb(sb, group) + le16_to_cpu(es->s_reserved_gdt_blocks)) : 0; unsigned metaend = start + overhead; - struct buffer_head *bh; + struct buffer_head *bh = NULL; int free_blocks_count; int err = -EINVAL; @@ -104,10 +104,9 @@ static int verify_group_input(struct sup ext3_warning(sb, __FUNCTION__, "Inode table (%u-%u) overlaps GDT table (%u-%u)", input->inode_table, itend - 1, start, metaend - 1); - else { - brelse(bh); + else err = 0; - } + brelse(bh); return err; } _