summaryrefslogtreecommitdiff
path: root/fs/ext4/balloc.c
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2009-11-23 07:24:38 -0500
committerTheodore Ts'o <tytso@mit.edu>2009-11-23 07:24:38 -0500
commit8dadb198cb70ef811916668fe67eeec82e8858dd (patch)
treee42f0cc333df6807a47678e41599055b6b2c286e /fs/ext4/balloc.c
parent3f8fb9490efbd300887470a2a880a64e04dcc3f5 (diff)
downloadlinux-3.10-8dadb198cb70ef811916668fe67eeec82e8858dd.tar.gz
linux-3.10-8dadb198cb70ef811916668fe67eeec82e8858dd.tar.bz2
linux-3.10-8dadb198cb70ef811916668fe67eeec82e8858dd.zip
ext4: fix uninit block bitmap initialization when s_meta_first_bg is non-zero
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
Diffstat (limited to 'fs/ext4/balloc.c')
-rw-r--r--fs/ext4/balloc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index 1d0418980f8..f3032c919a2 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -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;
}
/**