linux/fs/f2fs
Chao Yu 46ef58a80b f2fs: don't over-report free space or inodes in statvfs
[ Upstream commit a920196062 ]

This fixes an analogus bug that was fixed in modern filesystems:
a) xfs in commit 4b8d867ca6 ("xfs: don't over-report free space or
inodes in statvfs")
b) ext4 in commit f87d3af741 ("ext4: don't over-report free space
or inodes in statvfs")
where statfs can report misleading / incorrect information where
project quota is enabled, and the free space is less than the
remaining quota.

This commit will resolve a test failure in generic/762 which tests
for this bug.

generic/762       - output mismatch (see /share/git/fstests/results//generic/762.out.bad)
#    --- tests/generic/762.out   2025-04-15 10:21:53.371067071 +0800
#    +++ /share/git/fstests/results//generic/762.out.bad 2025-05-13 16:13:37.000000000 +0800
#    @@ -6,8 +6,10 @@
#     root blocks2 is in range
#     dir blocks2 is in range
#     root bavail2 is in range
#    -dir bavail2 is in range
#    +dir bavail2 has value of 1539066
#    +dir bavail2 is NOT in range 304734.87 .. 310891.13
#     root blocks3 is in range
#    ...
#    (Run 'diff -u /share/git/fstests/tests/generic/762.out /share/git/fstests/results//generic/762.out.bad'  to see the entire diff)

HINT: You _MAY_ be missing kernel fix:
      XXXXXXXXXXXXXX xfs: don't over-report free space or inodes in statvfs

Cc: stable@kernel.org
Fixes: ddc34e328d ("f2fs: introduce f2fs_statfs_project")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-07-06 10:57:57 +02:00
..
acl.c f2fs: port to vfs{g,u}id_t and associated helpers 2022-10-04 13:31:43 -07:00
acl.h vfs: add rcu argument to ->get_acl() callback 2021-08-18 22:08:24 +02:00
checkpoint.c f2fs: fix to update user block counts in block_operations() 2024-08-03 08:49:48 +02:00
compress.c f2fs: fix typos in comments 2024-06-12 11:03:37 +02:00
data.c f2fs: fix to detect gcing page in f2fs_is_cp_guaranteed() 2025-06-27 11:07:10 +01:00
debug.c f2fs: refactor extent_cache to support for read and more 2023-05-17 11:53:52 +02:00
dir.c f2fs: Introduce linear search for dentries 2025-02-21 13:49:25 +01:00
extent_cache.c f2fs: fix several potential integer overflows in file offsets 2024-10-17 15:21:22 +02:00
f2fs.h f2fs: fix to do sanity check on sbi->total_valid_block_count 2025-06-27 11:07:09 +01:00
file.c f2fs: fix to wait dio completion 2025-02-21 13:50:12 +01:00
gc.c f2fs: fix to avoid use GC_AT when setting gc_mode as GC_URGENT_LOW or GC_URGENT_MID 2024-12-14 19:53:45 +01:00
gc.h f2fs: Fix system crash due to lack of free space in LFS 2023-05-24 17:32:38 +01:00
hash.c f2fs: don't use casefolded comparison for "." and ".." 2022-05-17 11:19:23 -07:00
inline.c f2fs: Introduce linear search for dentries 2025-02-21 13:49:25 +01:00
inode.c f2fs: don't retry IO for corrupted data scenario 2025-04-25 10:43:29 +02:00
iostat.c f2fs: fix to avoid potential memory corruption in __update_iostat_latency() 2023-03-11 13:55:21 +01:00
iostat.h f2fs: iostat: support accounting compressed IO 2022-08-29 21:15:51 -07:00
Kconfig f2fs: introduce F2FS_UNFAIR_RWSEM to support unfair rwsem 2022-03-04 09:15:53 -08:00
Makefile f2fs: separate out iostat feature 2021-08-23 10:25:51 -07:00
namei.c f2fs: prevent kernel warning due to negative i_nlink from corrupted image 2025-06-27 11:07:29 +01:00
node.c f2fs: fix to avoid out-of-bounds access in f2fs_truncate_inode_blocks() 2025-04-25 10:43:30 +02:00
node.h f2fs: convert to use bitmap API 2024-01-10 17:10:30 +01:00
recovery.c f2fs: fix to avoid potential panic during recovery 2024-03-26 18:20:55 -04:00
segment.c f2fs: check curseg->inited before write_sum_page in change_curseg 2024-12-14 19:53:45 +01:00
segment.h f2fs: remove struct segment_allocation default_salloc_ops 2024-12-14 19:53:45 +01:00
shrinker.c f2fs: refactor extent_cache to support for read and more 2023-05-17 11:53:52 +02:00
super.c f2fs: don't over-report free space or inodes in statvfs 2025-07-06 10:57:57 +02:00
sysfs.c f2fs: check validation of fault attrs in f2fs_build_fault_attr() 2024-07-11 12:47:09 +02:00
verity.c fs: f2fs: initialize fsdata in pagecache_write() 2023-03-11 13:55:18 +01:00
xattr.c f2fs: reduce expensive checkpoint trigger frequency 2024-10-17 15:21:09 +02:00
xattr.h f2fs: code cleanup by removing ifdef macro surrounding 2020-05-26 18:56:10 -07:00