mbox series

[GIT,PULL,04/16] xfs: create temporary files for online repair

Message ID 171322716036.141687.5941639935061854826.stg-ugh@frogsfrogsfrogs (mailing list archive)
State New
Headers show
Series [GIT,PULL,01/16] xfs: improve log incompat feature handling | expand

Pull-request

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-tempfiles-6.10_2024-04-15

Message

Darrick J. Wong April 16, 2024, 12:28 a.m. UTC
Hi Chandan,

Please pull this branch with changes for xfs for 6.10-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 0730e8d8ba1d1507f1d7fd719e1f835ce69961fe:

xfs: enable logged file mapping exchange feature (2024-04-15 14:54:26 -0700)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/repair-tempfiles-6.10_2024-04-15

for you to fetch changes up to 5befb047b9f4de1747bf48c63cab997a97e0088b:

xfs: add the ability to reap entire inode forks (2024-04-15 14:58:49 -0700)

----------------------------------------------------------------
xfs: create temporary files for online repair [v30.3 04/16]

As mentioned earlier, the repair strategy for file-based metadata is to
build a new copy in a temporary file and swap the file fork mappings
with the metadata inode.  We've built the atomic extent swap facility,
so now we need to build a facility for handling private temporary files.

The first step is to teach the filesystem to ignore the temporary files.
We'll mark them as PRIVATE in the VFS so that the kernel security
modules will leave it alone.  The second step is to add the online
repair code the ability to create a temporary file and reap extents from
the temporary file after the extent swap.

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 (4):
xfs: hide private inodes from bulkstat and handle functions
xfs: create temporary files and directories for online repair
xfs: refactor live buffer invalidation for repairs
xfs: add the ability to reap entire inode forks

fs/xfs/Makefile         |   1 +
fs/xfs/scrub/parent.c   |   2 +-
fs/xfs/scrub/reap.c     | 445 +++++++++++++++++++++++++++++++++++++++++++++---
fs/xfs/scrub/reap.h     |  21 +++
fs/xfs/scrub/scrub.c    |   3 +
fs/xfs/scrub/scrub.h    |   4 +
fs/xfs/scrub/tempfile.c | 251 +++++++++++++++++++++++++++
fs/xfs/scrub/tempfile.h |  28 +++
fs/xfs/scrub/trace.h    |  96 +++++++++++
fs/xfs/xfs_export.c     |   2 +-
fs/xfs/xfs_inode.c      |   3 +-
fs/xfs/xfs_inode.h      |   2 +
fs/xfs/xfs_iops.c       |   3 +
fs/xfs/xfs_itable.c     |   8 +
14 files changed, 843 insertions(+), 26 deletions(-)
create mode 100644 fs/xfs/scrub/tempfile.c
create mode 100644 fs/xfs/scrub/tempfile.h