Skip to content

Commit

Permalink
ext4: avoid duplicate writes of the backup bg descriptor blocks
Browse files Browse the repository at this point in the history
The resize code was needlessly writing the backup block group
descriptor blocks multiple times (once per block group) during an
online resize.

Signed-off-by: Yongqiang Yang <xiaoqiangnk@gmail.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@vger.kernel.org
  • Loading branch information
Yongqiang Yang authored and Theodore Ts'o committed Sep 5, 2012
1 parent 6df935a commit 2ebd170
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions fs/ext4/resize.c
Original file line number Diff line number Diff line change
Expand Up @@ -1358,13 +1358,15 @@ static int ext4_flex_group_add(struct super_block *sb,
err = err2;

if (!err) {
int i;
int gdb_num = group / EXT4_DESC_PER_BLOCK(sb);
int gdb_num_end = ((group + flex_gd->count - 1) /
EXT4_DESC_PER_BLOCK(sb));

update_backups(sb, sbi->s_sbh->b_blocknr, (char *)es,
sizeof(struct ext4_super_block));
for (i = 0; i < flex_gd->count; i++, group++) {
for (; gdb_num <= gdb_num_end; gdb_num++) {
struct buffer_head *gdb_bh;
int gdb_num;
gdb_num = group / EXT4_BLOCKS_PER_GROUP(sb);

gdb_bh = sbi->s_group_desc[gdb_num];
update_backups(sb, gdb_bh->b_blocknr, gdb_bh->b_data,
gdb_bh->b_size);
Expand Down

0 comments on commit 2ebd170

Please sign in to comment.