aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2014-11-25 16:27:44 -0500
committerTheodore Ts'o <tytso@mit.edu>2014-11-25 16:27:44 -0500
commitb003b52496b9bea9b186b127aea730b79d2a83bd (patch)
treeb4ae0e27022e9813868616fa7ffb29db01502e2b /fs/ext4/super.c
parent733ded2a803523f9e082282820821343679cadc6 (diff)
ext4: don't count external journal blocks as overhead
This was fixed for ext3 with: e6d8fb3 ext3: Count internal journal as bsddf overhead in ext3_statfs but was never fixed for ext4. With a large external journal and no used disk blocks, df comes out negative without this, as journal blocks are added to the overhead & subtracted from used blocks unconditionally. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 3bd2982da36d..f8ad756bb852 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3331,8 +3331,8 @@ int ext4_calculate_overhead(struct super_block *sb)
3331 memset(buf, 0, PAGE_SIZE); 3331 memset(buf, 0, PAGE_SIZE);
3332 cond_resched(); 3332 cond_resched();
3333 } 3333 }
3334 /* Add the journal blocks as well */ 3334 /* Add the internal journal blocks as well */
3335 if (sbi->s_journal) 3335 if (sbi->s_journal && !sbi->journal_bdev)
3336 overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen); 3336 overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen);
3337 3337
3338 sbi->s_overhead = overhead; 3338 sbi->s_overhead = overhead;