[PATCHSET v30.2] xfs: online repair of symbolic links

Darrick J. Wong
2024-04-03T05:12:23Z

Hi all,

The patches in this set adds the ability to repair the target buffer of
a symbolic link, using the same salvage, rebuild, and swap strategy used
everywhere else.

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

kernel git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=repair-symlink

xfsprogs git tree:
https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=repair-symlink
---
Commits in this patchset:
* xfs: expose xfs_bmap_local_to_extents for online repair
* xfs: pass the owner to xfs_symlink_write_target
* xfs: online repair of symbolic links
---
fs/xfs/Makefile | 1
fs/xfs/libxfs/xfs_bmap.c | 11 -
fs/xfs/libxfs/xfs_bmap.h | 6
fs/xfs/libxfs/xfs_symlink_remote.c | 7
fs/xfs/libxfs/xfs_symlink_remote.h | 7
fs/xfs/scrub/repair.h | 8 +
fs/xfs/scrub/scrub.c | 2
fs/xfs/scrub/symlink.c | 13 +
fs/xfs/scrub/symlink_repair.c | 506 ++++++++++++++++++++++++++++++++++++
fs/xfs/scrub/tempfile.c | 13 +
fs/xfs/scrub/trace.h | 46 +++
fs/xfs/xfs_symlink.c | 4
12 files changed, 609 insertions(+), 15 deletions(-)
create mode 100644 fs/xfs/scrub/symlink_repair.c