On Feb 14, 2008 17:35 +0100, Valerie Clement wrote: > From: Valerie Clement <valerie.clement@xxxxxxxx> > > 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. > Depending on the group size and the block size, extents might be > larger than BLOCKS_PER_GROUP(); use EXT_INIT_MAX_LEN instead of > BLOCKS_PER_GROUP(). In fact, my earlier review of this patch was incorrect, and Aneesh pointed out the correct answer. The ext4_mb_mark_free_simple() function is only called from ext4_mb_generate_buddy() to generate the buddy bitmap from the on-disk block bitmap, and in that case the @len parameter should always be <= EXT4_BLOCKS_PER_GROUP(). I think the original patch was correct. Sorry about the confusion. I thought at first glance this was for freeing the blocks from releasing an extent, but that is incorrect. Cheers, Andreas -- Andreas Dilger Sr. Staff Engineer, Lustre Group Sun Microsystems of Canada, Inc. - To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html