Message ID | 8807a471-2331-276d-1b72-dce55ea7a1cf@virtuozzo.com |
---|---|
State | Superseded |
Headers | show |
Series | [1/7] ext4 resise: extra brelse in setup_new_flex_group_blocks() | expand |
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index ff17480e8613..ff8389ac4769 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -923,6 +923,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); @@ -938,8 +939,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; }
gdb_bh must be released in case of errors before update of s_group_desc but it must not be released after update of group descriptors because in this case bh can be used later. Fixes 01f795f9e0d6 ("ext4: add online resizing support for meta_bg ...") #? cc: stable@vger.kernel.org # 3.7+ Signed-off-by: Vasily Averin <vvs@openvz.org> --- fs/ext4/resize.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)