Re: [PATCH] ext4: include journal blocks of internal journal in df overhead calcs
From: Eric Sandeen <hidden>
Date: 2014-08-14 03:21:08
Also in:
lkml
On 8/13/14, 6:37 AM, Chin-Tsung Cheng wrote:
The journal blocks of external journal device should not be counted as overhead. Signed-off-by: Chin-Tsung Cheng <redacted>
Yep, I added this and didn't consider external journals, oops.
Agree with Darrick that whitespace (and parens) aren't ideal...
Is this a shorter test?
if (sbi->s_journal && !sbi->journal_bdev) {
overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen);
*sbi gets kzalloced and I *think* journal_bdev is only filled in for
external journals...
ext3_statfs probably needs the same treatment, it unconditionally does:
/* Add the journal blocks as well */
overhead += sbi->s_journal->j_maxlen;
-Eric
quoted hunk ↗ jump to hunk
--- fs/ext4/super.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 32b43ad..03b2f62 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c@@ -3316,9 +3316,10 @@ int ext4_calculate_overhead(struct super_block *sb) memset(buf, 0, PAGE_SIZE); cond_resched(); } - /* Add the journal blocks as well */ - if (sbi->s_journal) - overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen); + /* Add the internal journal blocks as well */ + if ((sbi->s_journal) && + (sbi->s_journal->j_fs_dev == sbi->s_journal->j_dev)) + overhead += EXT4_NUM_B2C(sbi, sbi->s_journal->j_maxlen); sbi->s_overhead = overhead; smp_wmb();