diff options
author | Eric Sandeen <sandeen@redhat.com> | 2014-11-25 16:27:44 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-11-25 16:27:44 -0500 |
commit | b003b52496b9bea9b186b127aea730b79d2a83bd (patch) | |
tree | b4ae0e27022e9813868616fa7ffb29db01502e2b /fs/ext4/super.c | |
parent | 733ded2a803523f9e082282820821343679cadc6 (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.c | 4 |
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; |