Hi Chandan, Please pull this branch with changes for xfs for 6.8-rc1. As usual, I did a test-merge with the main upstream branch as of a few minutes ago, and didn't see any conflicts. Please let me know if you encounter any problems. --D The following changes since commit c3a22c2e4b45fcf3184e7dd1c755e6b45dc9f499: xfs: skip the rmapbt search on an empty attr fork unless we know it was zapped (2023-12-15 10:03:38 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-file-mappings-6.8_2023-12-15 for you to fetch changes up to dbbdbd0086320a026903ca34efedb6abf55230ed: xfs: repair problems in CoW forks (2023-12-15 10:03:40 -0800) ---------------------------------------------------------------- xfs: online repair of file fork mappings [v28.3] In this series, online repair gains the ability to rebuild data and attr fork mappings from the reverse mapping information. It is at this point where we reintroduce the ability to reap file extents. Repair of CoW forks is a little different -- on disk, CoW staging extents are owned by the refcount btree and cannot be mapped back to individual files. Hence we can only detect staging extents that don't quite look right (missing reverse mappings, shared staging extents) and replace them with fresh allocations. This has been running on the djcloud for months with no problems. Enjoy! Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> ---------------------------------------------------------------- Darrick J. Wong (5): xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents xfs: repair inode fork block mapping data structures xfs: refactor repair forcing tests into a repair.c helper xfs: create a ranged query function for refcount btrees xfs: repair problems in CoW forks fs/xfs/Makefile | 2 + fs/xfs/libxfs/xfs_bmap_btree.c | 121 +++++- fs/xfs/libxfs/xfs_bmap_btree.h | 5 + fs/xfs/libxfs/xfs_btree_staging.c | 11 +- fs/xfs/libxfs/xfs_btree_staging.h | 2 +- fs/xfs/libxfs/xfs_iext_tree.c | 23 +- fs/xfs/libxfs/xfs_inode_fork.c | 1 + fs/xfs/libxfs/xfs_inode_fork.h | 3 + fs/xfs/libxfs/xfs_refcount.c | 41 ++ fs/xfs/libxfs/xfs_refcount.h | 10 + fs/xfs/scrub/bmap.c | 18 + fs/xfs/scrub/bmap_repair.c | 858 ++++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/common.h | 6 +- fs/xfs/scrub/cow_repair.c | 614 +++++++++++++++++++++++++++ fs/xfs/scrub/fsb_bitmap.h | 37 ++ fs/xfs/scrub/off_bitmap.h | 37 ++ fs/xfs/scrub/reap.c | 153 ++++++- fs/xfs/scrub/reap.h | 5 + fs/xfs/scrub/repair.c | 50 +++ fs/xfs/scrub/repair.h | 11 + fs/xfs/scrub/scrub.c | 20 +- fs/xfs/scrub/trace.h | 118 +++++- fs/xfs/xfs_trans.c | 62 +++ fs/xfs/xfs_trans.h | 4 + 24 files changed, 2160 insertions(+), 52 deletions(-) create mode 100644 fs/xfs/scrub/bmap_repair.c create mode 100644 fs/xfs/scrub/cow_repair.c create mode 100644 fs/xfs/scrub/fsb_bitmap.h create mode 100644 fs/xfs/scrub/off_bitmap.h