diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-07-09 22:27:05 +0200 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-07-09 22:27:05 +0200 |
commit | 952fc18ef9ec707ebdc16c0786ec360295e5ff15 (patch) | |
tree | bd93a2c400c4a50b17b677c3b46d92c71651b2aa /fs/ext4/resize.c | |
parent | ext4: pass a char * to ext4_count_free() instead of a buffer_head ptr (diff) | |
download | linux-952fc18ef9ec707ebdc16c0786ec360295e5ff15.tar.xz linux-952fc18ef9ec707ebdc16c0786ec360295e5ff15.zip |
ext4: fix overhead calculation used by ext4_statfs()
Commit f975d6bcc7a introduced bug which caused ext4_statfs() to
miscalculate the number of file system overhead blocks. This causes
the f_blocks field in the statfs structure to be larger than it should
be. This would in turn cause the "df" output to show the number of
data blocks in the file system and the number of data blocks used to
be larger than they should be.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: stable@kernel.org
Diffstat (limited to 'fs/ext4/resize.c')
-rw-r--r-- | fs/ext4/resize.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c index 7ea6cbb44121..17d38de4068c 100644 --- a/fs/ext4/resize.c +++ b/fs/ext4/resize.c @@ -1197,7 +1197,7 @@ static void ext4_update_super(struct super_block *sb, struct ext4_new_group_data *group_data = flex_gd->groups; struct ext4_sb_info *sbi = EXT4_SB(sb); struct ext4_super_block *es = sbi->s_es; - int i; + int i, ret; BUG_ON(flex_gd->count == 0 || group_data == NULL); /* @@ -1272,6 +1272,11 @@ static void ext4_update_super(struct super_block *sb, &sbi->s_flex_groups[flex_group].free_inodes); } + /* + * Update the fs overhead information + */ + ext4_calculate_overhead(sb); + if (test_opt(sb, DEBUG)) printk(KERN_DEBUG "EXT4-fs: added group %u:" "%llu blocks(%llu free %llu reserved)\n", flex_gd->count, |