diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index c2901805fe8f09f8ab8ef5d2a0490ba8d9abf1c6..e7a637e07c269c2275505dc7eac072db27448c25 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -926,6 +926,7 @@ static int add_new_gdb_meta_bg(struct super_block *sb, sizeof(struct buffer_head *), GFP_NOFS); if (!n_group_desc) { + brelse(gdb_bh); err = -ENOMEM; ext4_warning(sb, "not enough memory for %lu groups", gdb_num + 1); @@ -941,8 +942,6 @@ static int add_new_gdb_meta_bg(struct super_block *sb, kvfree(o_group_desc); BUFFER_TRACE(gdb_bh, "get_write_access"); err = ext4_journal_get_write_access(handle, gdb_bh); - if (unlikely(err)) - brelse(gdb_bh); return err; }