All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: djwong@kernel.org
Cc: allison.henderson@oracle.com, catherine.hoang@oracle.com,
	linux-xfs@vger.kernel.org, hch@lst.de
Subject: [PATCH 08/23] xfs: set child file owner in xfs_da_args when changing parent pointers
Date: Mon, 18 Mar 2024 14:50:04 -0700	[thread overview]
Message-ID: <171079802825.3808642.13044502785766853653.stgit@frogsfrogsfrogs> (raw)
In-Reply-To: <171079802637.3808642.13167687091088855153.stgit@frogsfrogsfrogs>

From: Darrick J. Wong <djwong@kernel.org>

Now that struct xfs_da_args has an explicit file owner field, we must
set it when modifying parent pointers.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
 fs/xfs/libxfs/xfs_parent.c |   13 ++++++++++---
 fs/xfs/libxfs/xfs_parent.h |    4 ++--
 2 files changed, 12 insertions(+), 5 deletions(-)


diff --git a/fs/xfs/libxfs/xfs_parent.c b/fs/xfs/libxfs/xfs_parent.c
index 3c31c04dd9a20..3c3fcdf8b975b 100644
--- a/fs/xfs/libxfs/xfs_parent.c
+++ b/fs/xfs/libxfs/xfs_parent.c
@@ -201,6 +201,7 @@ xfs_parent_addname(
 
 	args->trans = tp;
 	args->dp = child;
+	args->owner = child->i_ino;
 
 	xfs_init_parent_davalue(&ppargs->args, parent_name);
 
@@ -239,6 +240,7 @@ xfs_parent_removename(
 
 	args->trans = tp;
 	args->dp = child;
+	args->owner = child->i_ino;
 
 	xfs_init_parent_davalue(&ppargs->args, parent_name);
 
@@ -288,6 +290,7 @@ xfs_parent_replacename(
 
 	args->trans = tp;
 	args->dp = child;
+	args->owner = child->i_ino;
 
 	xfs_init_parent_davalue(&ppargs->args, old_name);
 	xfs_init_parent_danewvalue(&ppargs->args, new_name);
@@ -371,6 +374,7 @@ static inline void
 xfs_parent_scratch_init(
 	struct xfs_trans		*tp,
 	struct xfs_inode		*ip,
+	xfs_ino_t			owner,
 	const struct xfs_parent_name_irec *pptr,
 	struct xfs_parent_scratch	*scr)
 {
@@ -387,6 +391,7 @@ xfs_parent_scratch_init(
 	scr->args.whichfork	= XFS_ATTR_FORK;
 	scr->args.hashval	= xfs_da_hashname((const void *)&scr->rec,
 					sizeof(struct xfs_parent_name_rec));
+	scr->args.owner		= owner;
 }
 
 /*
@@ -415,7 +420,7 @@ xfs_parent_lookup(
 	}
 
 	xfs_parent_irec_to_disk(&scr->rec, pptr);
-	xfs_parent_scratch_init(tp, ip, pptr, scr);
+	xfs_parent_scratch_init(tp, ip, ip->i_ino, pptr, scr);
 	scr->args.op_flags |= XFS_DA_OP_OKNOENT;
 
 	return xfs_attr_get_ilocked(&scr->args);
@@ -429,6 +434,7 @@ xfs_parent_lookup(
 int
 xfs_parent_set(
 	struct xfs_inode		*ip,
+	xfs_ino_t			owner,
 	const struct xfs_parent_name_irec *pptr,
 	struct xfs_parent_scratch	*scr)
 {
@@ -438,7 +444,7 @@ xfs_parent_set(
 	}
 
 	xfs_parent_irec_to_disk(&scr->rec, pptr);
-	xfs_parent_scratch_init(NULL, ip, pptr, scr);
+	xfs_parent_scratch_init(NULL, ip, owner, pptr, scr);
 	scr->args.op_flags |= XFS_DA_OP_LOGGED;
 
 	return xfs_attr_set(&scr->args);
@@ -452,6 +458,7 @@ xfs_parent_set(
 int
 xfs_parent_unset(
 	struct xfs_inode		*ip,
+	xfs_ino_t			owner,
 	const struct xfs_parent_name_irec *pptr,
 	struct xfs_parent_scratch	*scr)
 {
@@ -461,7 +468,7 @@ xfs_parent_unset(
 	}
 
 	xfs_parent_irec_to_disk(&scr->rec, pptr);
-	xfs_parent_scratch_init(NULL, ip, pptr, scr);
+	xfs_parent_scratch_init(NULL, ip, owner, pptr, scr);
 	scr->args.op_flags |= XFS_DA_OP_LOGGED | XFS_DA_OP_REMOVE;
 
 	return xfs_attr_set(&scr->args);
diff --git a/fs/xfs/libxfs/xfs_parent.h b/fs/xfs/libxfs/xfs_parent.h
index 58e59af818bd2..46bf96c7e3c92 100644
--- a/fs/xfs/libxfs/xfs_parent.h
+++ b/fs/xfs/libxfs/xfs_parent.h
@@ -162,11 +162,11 @@ int xfs_parent_lookup(struct xfs_trans *tp, struct xfs_inode *ip,
 		const struct xfs_parent_name_irec *pptr,
 		struct xfs_parent_scratch *scratch);
 
-int xfs_parent_set(struct xfs_inode *ip,
+int xfs_parent_set(struct xfs_inode *ip, xfs_ino_t owner,
 		const struct xfs_parent_name_irec *pptr,
 		struct xfs_parent_scratch *scratch);
 
-int xfs_parent_unset(struct xfs_inode *ip,
+int xfs_parent_unset(struct xfs_inode *ip, xfs_ino_t owner,
 		const struct xfs_parent_name_irec *rec,
 		struct xfs_parent_scratch *scratch);
 


  parent reply	other threads:[~2024-03-18 21:50 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 21:39 [PATCHBOMB v13] xfs: parent pointers Darrick J. Wong
2024-03-18 21:41 ` [PATCHSET v13.0 1/2] xfs: Parent Pointers Darrick J. Wong
2024-03-18 21:42   ` [PATCH 01/23] xfs: Expose init_xattrs in xfs_create_tmpfile Darrick J. Wong
2024-03-18 21:42   ` [PATCH 02/23] xfs: add parent pointer support to attribute code Darrick J. Wong
2024-03-18 21:42   ` [PATCH 03/23] xfs: define parent pointer ondisk extended attribute format Darrick J. Wong
2024-03-18 21:43   ` [PATCH 04/23] xfs: add parent pointer validator functions Darrick J. Wong
2024-03-18 21:43   ` [PATCH 05/23] xfs: extend transaction reservations for parent attributes Darrick J. Wong
2024-03-18 21:43   ` [PATCH 06/23] xfs: parent pointer attribute creation Darrick J. Wong
2024-03-18 21:43   ` [PATCH 07/23] xfs: add parent attributes to link Darrick J. Wong
2024-03-18 21:44   ` [PATCH 08/23] xfs: add parent attributes to symlink Darrick J. Wong
2024-03-18 21:44   ` [PATCH 09/23] xfs: remove parent pointers in unlink Darrick J. Wong
2024-03-18 21:44   ` [PATCH 10/23] xfs: Add parent pointers to rename Darrick J. Wong
2024-03-18 21:44   ` [PATCH 11/23] xfs: Add parent pointers to xfs_cross_rename Darrick J. Wong
2024-03-18 21:45   ` [PATCH 12/23] xfs: Filter XFS_ATTR_PARENT for getfattr Darrick J. Wong
2024-03-18 21:45   ` [PATCH 13/23] xfs: pass the attr value to put_listent when possible Darrick J. Wong
2024-03-18 21:45   ` [PATCH 14/23] xfs: add a libxfs header file for staging new ioctls Darrick J. Wong
2024-03-18 21:45   ` [PATCH 15/23] xfs: Add parent pointer ioctl Darrick J. Wong
2024-03-18 21:46   ` [PATCH 16/23] xfs: fix unit conversion error in xfs_log_calc_max_attrsetm_res Darrick J. Wong
2024-03-18 21:46   ` [PATCH 17/23] xfs: drop compatibility minimum log size computations for reflink Darrick J. Wong
2024-03-18 21:46   ` [PATCH 18/23] xfs: don't remove the attr fork when parent pointers are enabled Darrick J. Wong
2024-03-18 21:46   ` [PATCH 19/23] xfs: Add the parent pointer support to the superblock version 5 Darrick J. Wong
2024-03-18 21:47   ` [PATCH 20/23] xfs: only clear some log incompat bits at unmount Darrick J. Wong
2024-03-18 21:47   ` [PATCH 21/23] xfs: allow adding multiple log incompat feature bits Darrick J. Wong
2024-03-18 21:47   ` [PATCH 22/23] xfs: make XFS_SB_FEAT_INCOMPAT_LOG_XATTRS sticky for parent pointers Darrick J. Wong
2024-03-18 21:47   ` [PATCH 23/23] xfs: make XFS_SB_FEAT_INCOMPAT_LOG_EXCHMAPS " Darrick J. Wong
2024-03-18 21:41 ` [PATCHSET v13.0 2/2] xfs: fsck " Darrick J. Wong
2024-03-18 21:48   ` [PATCH 01/23] xfs: check dirents have " Darrick J. Wong
2024-03-18 21:48   ` [PATCH 02/23] xfs: deferred scrub of dirents Darrick J. Wong
2024-03-18 21:48   ` [PATCH 03/23] xfs: create a parent pointer walk function for scrubbers Darrick J. Wong
2024-03-18 21:49   ` [PATCH 04/23] xfs: scrub parent pointers Darrick J. Wong
2024-03-18 21:49   ` [PATCH 05/23] xfs: deferred scrub of " Darrick J. Wong
2024-03-18 21:49   ` [PATCH 06/23] xfs: walk directory parent pointers to determine backref count Darrick J. Wong
2024-03-18 21:49   ` [PATCH 07/23] xfs: add raw parent pointer apis to support repair Darrick J. Wong
2024-03-18 21:50   ` Darrick J. Wong [this message]
2024-03-18 21:50   ` [PATCH 09/23] xfs: check parent pointer xattrs when scrubbing Darrick J. Wong
2024-03-18 21:50   ` [PATCH 10/23] xfs: salvage parent pointers when rebuilding xattr structures Darrick J. Wong
2024-03-18 21:50   ` [PATCH 11/23] xfs: replace namebuf with parent pointer in directory repair Darrick J. Wong
2024-03-18 21:51   ` [PATCH 12/23] xfs: repair directories by scanning directory parent pointers Darrick J. Wong
2024-03-18 21:51   ` [PATCH 13/23] xfs: implement live updates for directory repairs Darrick J. Wong
2024-03-18 21:51   ` [PATCH 14/23] xfs: replay unlocked parent pointer updates that accrue during xattr repair Darrick J. Wong
2024-03-18 21:51   ` [PATCH 15/23] xfs: replace namebuf with parent pointer in parent pointer repair Darrick J. Wong
2024-03-18 21:52   ` [PATCH 16/23] xfs: repair directory parent pointers by scanning for dirents Darrick J. Wong
2024-03-18 21:52   ` [PATCH 17/23] xfs: implement live updates for parent pointer repairs Darrick J. Wong
2024-03-18 21:52   ` [PATCH 18/23] xfs: remove pointless unlocked assertion Darrick J. Wong
2024-03-18 21:52   ` [PATCH 19/23] xfs: split xfs_bmap_add_attrfork into two pieces Darrick J. Wong
2024-03-18 21:53   ` [PATCH 20/23] xfs: actually rebuild the parent pointer xattrs Darrick J. Wong
2024-03-18 21:53   ` [PATCH 21/23] xfs: adapt the orphanage code to handle parent pointers Darrick J. Wong
2024-03-18 21:53   ` [PATCH 22/23] xfs: repair link count of nondirectories after rebuilding " Darrick J. Wong
2024-03-18 21:53   ` [PATCH 23/23] xfs: inode repair should ensure there's an attr fork to store " Darrick J. Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=171079802825.3808642.13044502785766853653.stgit@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=allison.henderson@oracle.com \
    --cc=catherine.hoang@oracle.com \
    --cc=hch@lst.de \
    --cc=linux-xfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.