2007-10-01 19:27:47

by Eric Sandeen

[permalink] [raw]
Subject: [PATCH 1/2] - ext4: fix setup_new_group_blocks locking

setup_new_group_blocks() manipulates the group descriptor block bh
under the block_bitmap bh's lock. It shouldn't matter since nobody
but resize should be touching these blocks, but it's worth fixing up.

Signed-off-by: Eric Sandeen <[email protected]>

Index: linux-2.6.23-rc7/fs/ext4/resize.c
===================================================================
--- linux-2.6.23-rc7.orig/fs/ext4/resize.c
+++ linux-2.6.23-rc7/fs/ext4/resize.c
@@ -218,10 +218,10 @@ static int setup_new_group_blocks(struct
brelse(gdb);
goto exit_bh;
}
- lock_buffer(bh);
- memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, bh->b_size);
+ lock_buffer(gdb);
+ memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, gdb->b_size);
set_buffer_uptodate(gdb);
- unlock_buffer(bh);
+ unlock_buffer(gdb);
ext4_journal_dirty_metadata(handle, gdb);
ext4_set_bit(bit, bh->b_data);
brelse(gdb);