[PATCHSET v29.4 08/18] xfs_repair: rebuild inode fork mappings

Darrick J. Wong
2024-03-26T02:56:49Z

Hi all,

Add the ability to regenerate inode fork mappings if the rmapbt
otherwise looks ok.

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

xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=repair-rebuild-forks
---
Commits in this patchset:
* xfs_repair: push inode buf and dinode pointers all the way to inode fork processing
* xfs_repair: sync bulkload data structures with kernel newbt code
* xfs_repair: rebuild block mappings from rmapbt data
---
include/xfs_trans.h | 2
libfrog/util.h | 5
libxfs/libxfs_api_defs.h | 16 +
libxfs/trans.c | 48 +++
repair/Makefile | 2
repair/agbtree.c | 24 +
repair/bmap_repair.c | 748 ++++++++++++++++++++++++++++++++++++++++++++++
repair/bmap_repair.h | 13 +
repair/bulkload.c | 260 +++++++++++++++-
repair/bulkload.h | 34 ++
repair/dino_chunks.c | 5
repair/dinode.c | 142 ++++++---
repair/dinode.h | 7
repair/phase5.c | 2
repair/rmap.c | 2
repair/rmap.h | 1
16 files changed, 1231 insertions(+), 80 deletions(-)
create mode 100644 repair/bmap_repair.c
create mode 100644 repair/bmap_repair.h