[PATCH 30/43] xfs: hide reserved RT blocks from statfs

Christoph Hellwig
2024-12-11T08:58:03Z

File systems with a zoned RT device have a large number of reserved
blocks that are required for garbage collection, and which can't be
filled with user data. Exclude them from the available blocks reported
through stat(v)fs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
fs/xfs/xfs_super.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index b289b2ba78b1..59998aac7ed7 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -865,7 +865,8 @@ xfs_statfs_rt(
xfs_sum_freecounter(mp, XC_FREE_RTEXTENTS);

st->f_bfree = xfs_rtbxlen_to_blen(mp, max(0LL, freertx));
- st->f_blocks = mp->m_sb.sb_rblocks;
+ st->f_blocks = mp->m_sb.sb_rblocks -
+ xfs_rtbxlen_to_blen(mp, mp->m_resblks[XC_FREE_RTEXTENTS].total);
}

static void
--
2.45.2