ext4: include journal blocks in df overhead calcs
PATCH 1/1 ext4: include journal blocks in df overhead calcs
To more accurately calculate overhead for "bsd" style df reporting, we should count the journal blocks as overhead as well.
---
I don't think this needs any special treatment for big allocclusters, does it? df still reports blocks?
fs/ext4/super.c +4 -0
@@ -3229,6 +3229,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 += sbi->s_journal->j_maxlen; + sbi->s_overhead = overhead;smp_wmb ();free_page ((unsigned long ) buf);
PATCH v2 1/1 ext4: include journal blocks in df overhead calcs
To more accurately calculate overhead for "bsd" style df reporting, we should count the journal blocks as overhead as well.
---
V2: I guess s_overhead _is_ in clusters, so do that conversion after all. Ted, if I'm wrong, you can pick the other patch ;)
Editorial/soapbox:
TBH it's hard to keep track of what fields are now stored as "clusters" not blocks . . .
Esp. when we do things like use local vars named "blk" -
blks = count_overhead(sb, i, buf);
but count_overhead() returns *clusters*, so it's really quite confusing to keep it all straight.
fs/ext4/super.c +4 -0
@@ -3229,6 +3229,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_B2C (sbi, sbi->s_journal->j_maxlen); + sbi->s_overhead = overhead;smp_wmb ();free_page ((unsigned long ) buf);
Quoted 6 lines · Eric Sandeen
To more accurately calculate overhead for "bsd" style df reporting, we should count the journal blocks as overhead as well.
Signed-off-by Eric Sandeen <[email protected]>Tested-by Eric Whitney <[email protected]>
Thanks, applied.
- Ted