Linux XFS filesystem development
 help / color / mirror / Atom feed
* [PATCH 0/9] xfsprogs: add xfs_repair -R --- log replay
@ 2026-08-30 17:15 Chris Wedgwood
  2026-08-21  0:22 ` [PATCH 1/9] libxfs: make XBF_DONE actually mark a buffer uptodate Chris Wedgwood
                   ` (9 more replies)
  0 siblings, 10 replies; 24+ messages in thread
From: Chris Wedgwood @ 2026-08-30 17:15 UTC (permalink / raw)
  To: linux-xfs

Adds xfs_repair -R: replay the log then repair, without mounting and
without discarding it as -L does.  Patches 1-2 are standalone fixes; 3-9
implement -R, importing log recovery from v7.1 fs/xfs into libxlog/.

Chris Wedgwood (9):
  libxfs: make XBF_DONE actually mark a buffer uptodate
  libxfs: don't corrupt a delwri list when a buffer is queued twice
  libxfs: record a failed buffer write when it fails
  libxlog: rename xfs_log_recover.c to logscan.c
  libxlog: import the kernel's log recovery, log items and AIL
  libxfs-diff: also compare libxlog against the kernel
  libxlog: build the imported kernel code
  xfs_repair: add -R to replay a dirty log before repairing
  xfs_repair: finish deletions the crash interrupted

 db/logformat.c                   |    6 +-
 include/Makefile                 |    1 +
 include/atomic.h                 |    2 +
 include/builddefs.in             |    1 +
 include/hlist.h                  |   39 +-
 include/kernel_compat.h          |  231 +++
 include/kmem.h                   |   19 +
 include/libxfs.h                 |    2 +-
 include/libxlog.h                |   39 +-
 include/list.h                   |    7 +
 include/platform_defs.h          |   11 +-
 include/spinlock.h               |   18 +-
 include/xfs_inode.h              |    3 +
 include/xfs_mount.h              |    9 +-
 include/xfs_trace.h              |   30 +
 include/xfs_trans.h              |  118 +-
 libfrog/bitmask.h                |   17 +-
 libfrog/div64.h                  |    7 +
 libxfs/Makefile                  |   20 +-
 libxfs/defer_item.c              |  995 ---------
 libxfs/defer_item.h              |   56 -
 libxfs/inactive.c                |  181 ++
 libxfs/init.c                    |   73 +
 libxfs/inode.c                   |   43 +
 libxfs/libxfs_io.h               |   15 +
 libxfs/logitem.c                 |  204 +-
 libxfs/rdwr.c                    |  183 +-
 libxfs/trans.c                   |   34 +-
 libxfs/util.c                    |    8 +-
 libxfs/xfs_alloc.c               |    2 +-
 libxfs/xfs_attr.c                |    2 +-
 libxfs/xfs_bmap.c                |    2 +-
 libxfs/xfs_defer.c               |    4 +
 libxfs/xfs_exchmaps.c            |    2 +-
 libxfs/xfs_ialloc.c              |    3 +
 libxfs/xfs_parent.c              |    2 +-
 libxfs/xfs_platform.h            |   21 +-
 libxfs/xfs_refcount.c            |    2 +-
 libxfs/xfs_rmap.c                |    2 +-
 libxfs/xfs_trans_resv.c          |    7 +-
 libxlog/Makefile                 |   14 +-
 libxlog/logscan.c                | 1650 +++++++++++++++
 libxlog/util.c                   |   34 +-
 libxlog/xfs_attr_item.c          | 1206 +++++++++++
 libxlog/xfs_attr_item.h          |   64 +
 libxlog/xfs_bmap_item.c          |  718 +++++++
 libxlog/xfs_bmap_item.h          |   78 +
 libxlog/xfs_buf_item.h           |   71 +
 libxlog/xfs_buf_item_recover.c   | 1215 +++++++++++
 libxlog/xfs_dquot_item_recover.c |  214 ++
 libxlog/xfs_exchmaps_item.c      |  608 ++++++
 libxlog/xfs_exchmaps_item.h      |   64 +
 libxlog/xfs_extfree_item.c       | 1026 +++++++++
 libxlog/xfs_extfree_item.h       |  100 +
 libxlog/xfs_icreate_item.c       |  260 +++
 libxlog/xfs_icreate_item.h       |   22 +
 libxlog/xfs_inode_item.h         |   62 +
 libxlog/xfs_inode_item_recover.c |  602 ++++++
 libxlog/xfs_log.h                |  147 ++
 libxlog/xfs_log_priv.h           |  746 +++++++
 libxlog/xfs_log_recover.c        | 3308 +++++++++++++++++++++++-------
 libxlog/xfs_refcount_item.c      |  861 ++++++++
 libxlog/xfs_refcount_item.h      |   82 +
 libxlog/xfs_rmap_item.c          |  890 ++++++++
 libxlog/xfs_rmap_item.h          |   81 +
 libxlog/xfs_trans_ail.c          |  978 +++++++++
 libxlog/xfs_trans_priv.h         |  170 ++
 logprint/log_misc.c              |    4 +-
 logprint/log_print_all.c         |    2 +-
 logprint/logprint.c              |    2 +-
 logprint/logprint.h              |    2 +-
 man/man8/xfs_repair.8            |   68 +-
 repair/globals.c                 |    1 +
 repair/globals.h                 |    1 +
 repair/phase2.c                  |  246 ++-
 repair/xfs_repair.c              |   24 +-
 tools/libxfs-diff                |   11 +
 77 files changed, 16157 insertions(+), 1896 deletions(-)
 create mode 100644 include/kernel_compat.h
 delete mode 100644 libxfs/defer_item.c
 delete mode 100644 libxfs/defer_item.h
 create mode 100644 libxfs/inactive.c
 create mode 100644 libxlog/logscan.c
 create mode 100644 libxlog/xfs_attr_item.c
 create mode 100644 libxlog/xfs_attr_item.h
 create mode 100644 libxlog/xfs_bmap_item.c
 create mode 100644 libxlog/xfs_bmap_item.h
 create mode 100644 libxlog/xfs_buf_item.h
 create mode 100644 libxlog/xfs_buf_item_recover.c
 create mode 100644 libxlog/xfs_dquot_item_recover.c
 create mode 100644 libxlog/xfs_exchmaps_item.c
 create mode 100644 libxlog/xfs_exchmaps_item.h
 create mode 100644 libxlog/xfs_extfree_item.c
 create mode 100644 libxlog/xfs_extfree_item.h
 create mode 100644 libxlog/xfs_icreate_item.c
 create mode 100644 libxlog/xfs_icreate_item.h
 create mode 100644 libxlog/xfs_inode_item.h
 create mode 100644 libxlog/xfs_inode_item_recover.c
 create mode 100644 libxlog/xfs_log.h
 create mode 100644 libxlog/xfs_log_priv.h
 create mode 100644 libxlog/xfs_refcount_item.c
 create mode 100644 libxlog/xfs_refcount_item.h
 create mode 100644 libxlog/xfs_rmap_item.c
 create mode 100644 libxlog/xfs_rmap_item.h
 create mode 100644 libxlog/xfs_trans_ail.c
 create mode 100644 libxlog/xfs_trans_priv.h


base-commit: d6d4236027e31e9a54fd3916ff130b1d41e78027
-- 
2.47.3


^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2026-09-02 23:57 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-30 17:15 [PATCH 0/9] xfsprogs: add xfs_repair -R --- log replay Chris Wedgwood
2026-08-21  0:22 ` [PATCH 1/9] libxfs: make XBF_DONE actually mark a buffer uptodate Chris Wedgwood
2026-08-31 13:37   ` Christoph Hellwig
2026-08-21  0:26 ` [PATCH 2/9] libxfs: don't corrupt a delwri list when a buffer is queued twice Chris Wedgwood
2026-08-31 13:38   ` Christoph Hellwig
2026-08-21  5:42 ` [PATCH 3/9] libxfs: record a failed buffer write when it fails Chris Wedgwood
2026-08-31 13:39   ` Christoph Hellwig
2026-08-27  5:08 ` [PATCH 6/9] libxfs-diff: also compare libxlog against the kernel Chris Wedgwood
2026-08-31 13:40   ` Christoph Hellwig
2026-08-31 17:37     ` Darrick J. Wong
2026-09-02 23:25       ` Dave Chinner
2026-08-27  5:08 ` [PATCH 4/9] libxlog: rename xfs_log_recover.c to logscan.c Chris Wedgwood
2026-08-31 13:42   ` Christoph Hellwig
2026-08-27  5:09 ` [PATCH 5/9] libxlog: import the kernel's log recovery, log items and AIL Chris Wedgwood
2026-08-31 13:45   ` Christoph Hellwig
2026-09-02 23:48   ` Dave Chinner
2026-08-27  5:24 ` [PATCH 7/9] libxlog: build the imported kernel code Chris Wedgwood
2026-08-31 13:46   ` Christoph Hellwig
2026-08-27  5:25 ` [PATCH 8/9] xfs_repair: add -R to replay a dirty log before repairing Chris Wedgwood
2026-08-31 13:48   ` Christoph Hellwig
2026-09-02 23:57   ` Dave Chinner
2026-08-27  5:48 ` [PATCH 9/9] xfs_repair: finish deletions the crash interrupted Chris Wedgwood
2026-08-31 13:50   ` Christoph Hellwig
2026-08-31 13:36 ` [PATCH 0/9] xfsprogs: add xfs_repair -R --- log replay Christoph Hellwig

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox