ext3: Count journal as bsddf overhead in ext3_statfs
PATCH 1/1 ext3: Count journal as bsddf overhead in ext3_statfs
ext4 counts journal space as bsddf overhead, but ext3 does not.
For some reason when I patched ext4 I thought I should leave ext3 alone, but frankly it makes more sense to fix it, I think.
Otherwise we get inconsistent behavior from ext3 under ext3.ko, and ext3 under ext4.ko, which is not at all desirable...
This is testable by xfstests shared/289, though it will need modification because it currently special-cases ext3.
---
fs/ext3/super.c +4 -0
@@ -2825,6 +2825,10 @@ static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf)* bitmap, and an inode table. */ overhead += ngroups * (2 + sbi->s_itb_per_group); + +/* Add the journal blocks as well */ + overhead += sbi->s_journal->j_maxlen; + sbi->s_overhead_last = overhead;smp_wmb (); sbi->s_blocks_last =le32_to_cpu (es->s_blocks_count);
Quoted 5 lines · Eric Sandeen
ext4 counts journal space as bsddf overhead, but ext3 does not.
For some reason when I patched ext4 I thought I should leave ext3 alone, but frankly it makes more sense to fix it, I think.
Quoted 7 lines
Otherwise we get inconsistent behavior from ext3 under ext3.ko, and ext3 under ext4.ko, which is not at all desirable...
This is testable by xfstests shared/289, though it will need modification because it currently special-cases ext3.
Signed-off-by Eric Sandeen <[email protected]>
OK, fair enough. Applied to my tree.
Honza
Quoted 18 lines
---
fs/ext3/super.c +4
-0@@ -2825,6 +2825,10 @@ static int ext3_statfs (struct dentry * dentry, struct kstatfs * buf)* bitmap, and an inode table. */ overhead += ngroups * (2 + sbi->s_itb_per_group); + +/* Add the journal blocks as well */ + overhead += sbi->s_journal->j_maxlen; + sbi->s_overhead_last = overhead;smp_wmb (); sbi->s_blocks_last =le32_to_cpu (es->s_blocks_count);
Signature · 2 lines
Jan Kara <[email protected]> SUSE Labs, CR