Hi all, 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. If you're going to start using this code, I strongly recommend pulling from my git trees, which are linked below. This has been running on the djcloud for months with no problems. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=indirect-health-reporting xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=indirect-health-reporting --- 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 | 76 ++++++++++++++++++++++++++++++++++++++++- 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 | 27 ++++++++++----- fs/xfs/xfs_inode.c | 35 +++++++++++++++++++ fs/xfs/xfs_trace.h | 1 + 11 files changed, 191 insertions(+), 13 deletions(-)