ext4: Fix kernel BUG at fs/ext4/mballoc.c:910!
authorValerie Clement <valerie.clement@bull.net>
Fri, 15 Feb 2008 18:48:51 +0000 (13:48 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Fri, 15 Feb 2008 18:48:51 +0000 (13:48 -0500)
With the flex_bg feature enabled, a large file creation oopses the
kernel.   The BUG_ON is:
BUG_ON(len >= EXT4_BLOCKS_PER_GROUP(sb));

As the allocation of the bitmaps and the inode table can be done
outside the block group with flex_bg, this allows to allocate up to
EXT4_BLOCKS_PER_GROUP blocks in a group.

This patch fixes the oops.

Signed-off-by: Valerie Clement <valerie.clement@bull.net>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
fs/ext4/mballoc.c

index dd0fcfcb35ce85f9af3b81331a20b14348b48694..2121184a3fa502574da27d48b9d9cbb9b60a90f8 100644 (file)
@@ -906,7 +906,7 @@ static void ext4_mb_mark_free_simple(struct super_block *sb,
        unsigned short chunk;
        unsigned short border;
 
-       BUG_ON(len >= EXT4_BLOCKS_PER_GROUP(sb));
+       BUG_ON(len > EXT4_BLOCKS_PER_GROUP(sb));
 
        border = 2 << sb->s_blocksize_bits;