From: Theodore Ts'o Date: Tue, 22 Apr 2008 11:47:25 +0000 (-0400) Subject: Basic flexible block group support X-Git-Tag: v1.41-WIP-0427~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=494a1daad37a8098e7db166d558aab3e9e37ac48;p=thirdparty%2Fe2fsprogs.git Basic flexible block group support Add superblock definition, and dumpe2fs and debugfs support. Signed-off-by: Jose R. Santos Signed-off-by: Valerie Clement Signed-off-by: Theodore Ts'o --- diff --git a/debugfs/set_fields.c b/debugfs/set_fields.c index ee51c4591..25343f0ed 100644 --- a/debugfs/set_fields.c +++ b/debugfs/set_fields.c @@ -132,6 +132,7 @@ static struct field_set_info super_fields[] = { { "mmp_interval", &set_sb.s_mmp_interval, 2, parse_uint }, { "mmp_block", &set_sb.s_mmp_block, 8, parse_uint }, { "raid_stripe_width", &set_sb.s_raid_stripe_width, 4, parse_uint }, + { "log_groups_per_flex", &set_sb.s_log_groups_per_flex, 1, parse_uint }, { 0, 0, 0, 0 } }; diff --git a/lib/e2p/ls.c b/lib/e2p/ls.c index b1196068d..c211dce78 100644 --- a/lib/e2p/ls.c +++ b/lib/e2p/ls.c @@ -242,6 +242,9 @@ void list_super2(struct ext2_super_block * sb, FILE *f) if (sb->s_first_meta_bg) fprintf(f, "First meta block group: %u\n", sb->s_first_meta_bg); + if (sb->s_log_groups_per_flex) + fprintf(f, "Flex block group size: %u\n", + 1 << sb->s_log_groups_per_flex); if (sb->s_mkfs_time) { tm = sb->s_mkfs_time; fprintf(f, "Filesystem created: %s", ctime(&tm)); diff --git a/lib/ext2fs/ext2_fs.h b/lib/ext2fs/ext2_fs.h index ad42cf80a..f23c8fd81 100644 --- a/lib/ext2fs/ext2_fs.h +++ b/lib/ext2fs/ext2_fs.h @@ -564,7 +564,10 @@ struct ext2_super_block { __u16 s_mmp_interval; /* # seconds to wait in MMP checking */ __u64 s_mmp_block; /* Block for multi-mount protection */ __u32 s_raid_stripe_width; /* blocks on all data disks (N*stride)*/ - __u32 s_reserved[163]; /* Padding to the end of the block */ + __u8 s_log_groups_per_flex; /* FLEX_BG group size */ + __u8 s_reserved_char_pad; + __u16 s_reserved_pad; /* Padding to next 32bits */ + __u32 s_reserved[162]; /* Padding to the end of the block */ }; /*