[GIT PULL 5/18] xfs: indirect health reporting

Darrick J. Wong
2024-02-24T01:30:16Z

The following changes since commit 989d5ec3175be7c0012d7744c667ae6a266fab06:

xfs: report XFS_IS_CORRUPT errors to the health system (2024-02-22 12:32:55 -0800)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/indirect-health-reporting-6.9_2024-02-23

for you to fetch changes up to a1f3e0cca41036c3c66abb6a2ed8fedc214e9a4c:

xfs: update health status if we get a clean bill of health (2024-02-22 12:33:04 -0800)

----------------------------------------------------------------
xfs: indirect health reporting [v29.3 05/18]

This series enables the XFS health reporting infrastructure to remember
indirect health concerns when resources are scarce. For example, if a
scrub notices that there's something wrong with an inode's metadata but
memory reclaim needs to free the incore inode, we want to record in the
perag data the fact that there was some inode somewhere with an error.
The perag structures never go away.

The first two patches in this series set that up, and the third one
provides a means for xfs_scrub to tell the kernel that it can forget the
indirect problem report.

This has been running on the djcloud for months with no problems. Enjoy!

Signed-off-by: Darrick J. Wong <djwong@kernel.org>

----------------------------------------------------------------
Darrick J. Wong (3):
xfs: add secondary and indirect classes to the health tracking system
xfs: remember sick inodes that get inactivated
xfs: update health status if we get a clean bill of health

fs/xfs/libxfs/xfs_fs.h | 4 ++-
fs/xfs/libxfs/xfs_health.h | 47 +++++++++++++++++++++++++
fs/xfs/libxfs/xfs_inode_buf.c | 2 +-
fs/xfs/scrub/health.c | 80 +++++++++++++++++++++++++++++++++++++++++--
fs/xfs/scrub/health.h | 1 +
fs/xfs/scrub/repair.c | 1 +
fs/xfs/scrub/scrub.c | 6 ++++
fs/xfs/scrub/trace.h | 4 ++-
fs/xfs/xfs_health.c | 33 +++++++++++-------
fs/xfs/xfs_inode.c | 35 +++++++++++++++++++
fs/xfs/xfs_trace.h | 1 +
11 files changed, 196 insertions(+), 18 deletions(-)