diff options
author | Eric Sandeen <sandeen@redhat.com> | 2007-10-18 06:06:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-18 17:37:29 -0400 |
commit | 42a2b6ad71b011144d21d88a124140bb2bf1023f (patch) | |
tree | 2b88c3aef205707f6efb8b953db7014cdf27afc6 /fs/ext3/resize.c | |
parent | 0f0a89ebe1ccf7c280534f69577cdd182941eb6a (diff) |
ext3: 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 <sandeen@redhat.com>
C: <linux-ext4@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ext3/resize.c')
-rw-r--r-- | fs/ext3/resize.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c index 771f7ada15d9..44de1453c301 100644 --- a/fs/ext3/resize.c +++ b/fs/ext3/resize.c | |||
@@ -245,10 +245,10 @@ static int setup_new_group_blocks(struct super_block *sb, | |||
245 | brelse(gdb); | 245 | brelse(gdb); |
246 | goto exit_bh; | 246 | goto exit_bh; |
247 | } | 247 | } |
248 | lock_buffer(bh); | 248 | lock_buffer(gdb); |
249 | memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, bh->b_size); | 249 | memcpy(gdb->b_data, sbi->s_group_desc[i]->b_data, gdb->b_size); |
250 | set_buffer_uptodate(gdb); | 250 | set_buffer_uptodate(gdb); |
251 | unlock_buffer(bh); | 251 | unlock_buffer(gdb); |
252 | ext3_journal_dirty_metadata(handle, gdb); | 252 | ext3_journal_dirty_metadata(handle, gdb); |
253 | ext3_set_bit(bit, bh->b_data); | 253 | ext3_set_bit(bit, bh->b_data); |
254 | brelse(gdb); | 254 | brelse(gdb); |