From 494a1daad37a8098e7db166d558aab3e9e37ac48 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 22 Apr 2008 07:47:25 -0400 Subject: [PATCH] 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 --- debugfs/set_fields.c | 1 + lib/e2p/ls.c | 3 +++ lib/ext2fs/ext2_fs.h | 5 ++++- 3 files changed, 8 insertions(+), 1 deletion(-) 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 */ }; /* -- 2.47.3