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@kernel.org>
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQQ2qTKExjcn+O1o2YRKO3ySh0YRpgUCZXzKAwAKCRBKO3ySh0YR
 prEyAP95FTXnn0pe08gcyzICmcnMM762VNleDRawhAj+LU2J4AEAj4eOC5AelmYo
 MHwdRYJzug539fliCF8m6a+id+aeCQo=
 =cONL
 -----END PGP SIGNATURE-----

Merge tag 'repair-file-mappings-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-6.8-mergeB

xfs: online repair of file fork mappings

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.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>

* tag 'repair-file-mappings-6.8_2023-12-15' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux:
  xfs: repair problems in CoW forks
  xfs: create a ranged query function for refcount btrees
  xfs: refactor repair forcing tests into a repair.c helper
  xfs: repair inode fork block mapping data structures
  xfs: reintroduce reaping of file metadata blocks to xrep_reap_extents
This commit is contained in:
Chandan Babu R 2023-12-16 08:44:55 +05:30
commit 98e63b91cd
24 changed files with 2160 additions and 52 deletions