mbox series

[GIT,PULL,2/6] xfs: online repair of AG btrees

Message ID 170267713343.2577253.11790987121430782895.stg-ugh@frogsfrogsfrogs (mailing list archive)
State Deferred, archived
Headers show
Series [GIT,PULL,1/6] xfs: prepare repair for bulk loading | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-ag-btrees-6.8_2023-12-15

Message

Darrick J. Wong Dec. 15, 2023, 9:55 p.m. UTC
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 e069d549705e49841247acf9b3176744e27d5425:

xfs: constrain dirty buffers while formatting a staged btree (2023-12-15 10:03:29 -0800)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-ag-btrees-6.8_2023-12-15

for you to fetch changes up to 9099cd38002f8029c9a1da08e6832d1cd18e8451:

xfs: repair refcount btrees (2023-12-15 10:03:33 -0800)

----------------------------------------------------------------
xfs: online repair of AG btrees [v28.3]

Now that we've spent a lot of time reworking common code in online fsck,
we're ready to start rebuilding the AG space btrees.  This series
implements repair functions for the free space, inode, and refcount
btrees.  Rebuilding the reverse mapping btree is much more intense and
is left for a subsequent patchset.  The fstests counterpart of this
patchset implements stress testing of repair.

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 (7):
xfs: create separate structures and code for u32 bitmaps
xfs: move the per-AG datatype bitmaps to separate files
xfs: roll the scrub transaction after completing a repair
xfs: remove trivial bnobt/inobt scrub helpers
xfs: repair free space btrees
xfs: repair inode btrees
xfs: repair refcount btrees

fs/xfs/Makefile                    |   4 +
fs/xfs/libxfs/xfs_ag.h             |  10 +
fs/xfs/libxfs/xfs_ag_resv.c        |   2 +
fs/xfs/libxfs/xfs_alloc.c          |  10 +-
fs/xfs/libxfs/xfs_alloc.h          |   2 +-
fs/xfs/libxfs/xfs_alloc_btree.c    |  13 +-
fs/xfs/libxfs/xfs_btree.c          |  26 ++
fs/xfs/libxfs/xfs_btree.h          |   2 +
fs/xfs/libxfs/xfs_ialloc.c         |  31 +-
fs/xfs/libxfs/xfs_ialloc.h         |   3 +-
fs/xfs/libxfs/xfs_refcount.c       |   8 +-
fs/xfs/libxfs/xfs_refcount.h       |   2 +-
fs/xfs/libxfs/xfs_refcount_btree.c |  13 +-
fs/xfs/libxfs/xfs_types.h          |   7 +
fs/xfs/scrub/agb_bitmap.c          | 103 ++++
fs/xfs/scrub/agb_bitmap.h          |  68 +++
fs/xfs/scrub/agheader_repair.c     |  19 +-
fs/xfs/scrub/alloc.c               |  52 ++-
fs/xfs/scrub/alloc_repair.c        | 934 +++++++++++++++++++++++++++++++++++++
fs/xfs/scrub/bitmap.c              | 509 +++++++++++++-------
fs/xfs/scrub/bitmap.h              | 111 ++---
fs/xfs/scrub/common.c              |   1 +
fs/xfs/scrub/common.h              |  19 +
fs/xfs/scrub/ialloc.c              |  39 +-
fs/xfs/scrub/ialloc_repair.c       | 884 +++++++++++++++++++++++++++++++++++
fs/xfs/scrub/newbt.c               |  48 +-
fs/xfs/scrub/newbt.h               |   3 +
fs/xfs/scrub/reap.c                |   6 +-
fs/xfs/scrub/refcount.c            |   2 +-
fs/xfs/scrub/refcount_repair.c     | 794 +++++++++++++++++++++++++++++++
fs/xfs/scrub/repair.c              | 131 ++++++
fs/xfs/scrub/repair.h              |  43 ++
fs/xfs/scrub/rmap.c                |   1 +
fs/xfs/scrub/scrub.c               |  30 +-
fs/xfs/scrub/scrub.h               |  15 +-
fs/xfs/scrub/trace.h               | 112 +++--
fs/xfs/scrub/xfarray.h             |  22 +
fs/xfs/xfs_extent_busy.c           |  13 +
fs/xfs/xfs_extent_busy.h           |   2 +
39 files changed, 3709 insertions(+), 385 deletions(-)
create mode 100644 fs/xfs/scrub/agb_bitmap.c
create mode 100644 fs/xfs/scrub/agb_bitmap.h
create mode 100644 fs/xfs/scrub/alloc_repair.c
create mode 100644 fs/xfs/scrub/ialloc_repair.c
create mode 100644 fs/xfs/scrub/refcount_repair.c