ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
authorTheodore Ts'o <tytso@mit.edu>
Mon, 23 Nov 2009 12:24:38 +0000 (07:24 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 23 Nov 2009 12:24:38 +0000 (07:24 -0500)
The number of old-style block group descriptor blocks is
s_meta_first_bg when the meta_bg feature flag is set.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@kernel.org
fs/ext4/balloc.c

index 1d04189..f3032c9 100644 (file)
@@ -761,7 +761,13 @@ static unsigned long ext4_bg_num_gdb_meta(struct super_block *sb,
 static unsigned long ext4_bg_num_gdb_nometa(struct super_block *sb,
                                        ext4_group_t group)
 {
-       return ext4_bg_has_super(sb, group) ? EXT4_SB(sb)->s_gdb_count : 0;
+       if (!ext4_bg_has_super(sb, group))
+               return 0;
+
+       if (EXT4_HAS_INCOMPAT_FEATURE(sb,EXT4_FEATURE_INCOMPAT_META_BG))
+               return le32_to_cpu(EXT4_SB(sb)->s_es->s_first_meta_bg);
+       else
+               return EXT4_SB(sb)->s_gdb_count;
 }
 
 /**