Whamcloud - gitweb
libext2fs: automatically enable meta_bg to avoid filling up BG 0
authorDarrick J. Wong <darrick.wong@oracle.com>
Sat, 24 Oct 2015 04:30:02 +0000 (00:30 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Sat, 24 Oct 2015 04:30:10 +0000 (00:30 -0400)
If during formatting we'd lose more than 75% a block group to group
descriptors and other metadata, enable the meta_bg feature.  This
enables us to create >500T filesystems with default options.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
lib/ext2fs/initialize.c

index f672a27..b5ca928 100644 (file)
@@ -381,6 +381,11 @@ ipg_retry:
        overhead = (int) (3 + fs->inode_blocks_per_group +
                          super->s_reserved_gdt_blocks);
 
+       /* Enable meta_bg if we'd lose more than 3/4 of a BG to GDT blocks. */
+       if (super->s_reserved_gdt_blocks + fs->desc_blocks >
+           super->s_blocks_per_group * 3 / 4)
+               fs->super->s_feature_incompat |= EXT2_FEATURE_INCOMPAT_META_BG;
+
        if (fs->super->s_feature_incompat & EXT2_FEATURE_INCOMPAT_META_BG)
                overhead++;
        else