summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2026-09-08 23:05:37 -0700
committerCarlos Maiolino <cem@kernel.org>2026-09-11 08:44:35 +0200
commite854f9a28b1fa08dfa5bf18ee4184fae90106180 (patch)
treeb8ab8f3e5f3cf2389a2b9c6a2c0adcdb35ed8a68
parentd3a6a35a220615c4f4578aedf3b1626b91d3acae (diff)
downloadlinux-next-e854f9a28b1fa08dfa5bf18ee4184fae90106180.tar.gz
linux-next-e854f9a28b1fa08dfa5bf18ee4184fae90106180.zip
xfs: fix replaying dirent removals into the temporary directory
xrep_dir_replay_removename is the function that replays a directory entry removal from sc->ip into the temporary directory so that when we swap the contents of sc->tempip and sc->ip, the directory is correct. LOLLM noticed that we were passing the wrong inode pointer into xrep_dir_init_args. It doesn't make sense to set rd->args.dp to rd->args.dp so let's fix this. Cc: stable@vger.kernel.org # v6.10 Fixes: 8559b21a64d983 ("xfs: implement live updates for directory repairs") Signed-off-by: Darrick J. Wong <djwong@kernel.org> Assisted-by: LOLLM # finding obvious bugs Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Carlos Maiolino <cem@kernel.org>
-rw-r--r--fs/xfs/scrub/dir_repair.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/scrub/dir_repair.c b/fs/xfs/scrub/dir_repair.c
index d9d6b7e2abda..2cfcf1c35679 100644
--- a/fs/xfs/scrub/dir_repair.c
+++ b/fs/xfs/scrub/dir_repair.c
@@ -727,7 +727,7 @@ xrep_dir_replay_removename(
const struct xfs_name *name,
xfs_extlen_t total)
{
- struct xfs_inode *dp = rd->args.dp;
+ struct xfs_inode *dp = rd->sc->tempip;
ASSERT(S_ISDIR(VFS_I(dp)->i_mode));