mbox series

[GIT,PULL,10/16] xfs: move orphan files to lost and found

Message ID 171322718011.141687.9955601436581822988.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-orphanage-6.10_2024-04-15

Message

Darrick J. Wong April 16, 2024, 12:29 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 34c9382c128270d0f4c8b36783b30f3c8085b2dd:

xfs: ask the dentry cache if it knows the parent of a directory (2024-04-15 14:58:56 -0700)

are available in the Git repository at:

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

for you to fetch changes up to 73597e3e42b4a15030e6f93b71b53a04377ea419:

xfs: ensure dentry consistency when the orphanage adopts a file (2024-04-15 14:58:57 -0700)

----------------------------------------------------------------
xfs: move orphan files to lost and found [v30.3 10/16]

Orphaned files are defined to be files with nonzero ondisk link count
but no observable parent directory.  This series enables online repair
to reparent orphaned files into the filesystem directory tree, and wires
up this reparenting ability into the directory, file link count, and
parent pointer repair functions.  This is how we fix files with positive
link count that are not reachable through the directory tree.

This patch will also create the orphanage directory (lost+found) if it
is not present.  In contrast to xfs_repair, we follow e2fsck in creating
the lost+found without group or other-owner access to avoid accidental
disclosure of files that were previously hidden by an 0700 directory.
That's silly security, but people have been known to do it.

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 (3):
xfs: move orphan files to the orphanage
xfs: move files to orphanage instead of letting nlinks drop to zero
xfs: ensure dentry consistency when the orphanage adopts a file

.../filesystems/xfs/xfs-online-fsck-design.rst     |  20 +-
fs/xfs/Makefile                                    |   1 +
fs/xfs/scrub/dir_repair.c                          | 130 ++++-
fs/xfs/scrub/nlinks.c                              |  20 +-
fs/xfs/scrub/nlinks.h                              |   7 +
fs/xfs/scrub/nlinks_repair.c                       | 123 ++++-
fs/xfs/scrub/orphanage.c                           | 589 +++++++++++++++++++++
fs/xfs/scrub/orphanage.h                           |  75 +++
fs/xfs/scrub/parent_repair.c                       | 100 +++-
fs/xfs/scrub/repair.h                              |   2 +
fs/xfs/scrub/scrub.c                               |   2 +
fs/xfs/scrub/scrub.h                               |   4 +
fs/xfs/scrub/trace.c                               |   1 +
fs/xfs/scrub/trace.h                               |  96 ++++
fs/xfs/xfs_inode.c                                 |   6 +-
fs/xfs/xfs_inode.h                                 |   1 +
16 files changed, 1139 insertions(+), 38 deletions(-)
create mode 100644 fs/xfs/scrub/orphanage.c
create mode 100644 fs/xfs/scrub/orphanage.h