public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Allison Henderson <allison.henderson@oracle.com>
To: linux-xfs@vger.kernel.org
Subject: [PATCH v2 08/18] xfs: add parent pointer support to attribute code
Date: Mon, 18 Jul 2022 13:20:12 -0700	[thread overview]
Message-ID: <20220718202022.6598-9-allison.henderson@oracle.com> (raw)
In-Reply-To: <20220718202022.6598-1-allison.henderson@oracle.com>

Add the new parent attribute type. XFS_ATTR_PARENT is used only for parent pointer
entries; it uses reserved blocks like XFS_ATTR_ROOT.

[dchinner: forward ported and cleaned up]
[achender: rebased]

Signed-off-by: Mark Tinguely <tinguely@sgi.com>
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
---
 fs/xfs/libxfs/xfs_attr.c       | 4 +++-
 fs/xfs/libxfs/xfs_da_format.h  | 5 ++++-
 fs/xfs/libxfs/xfs_log_format.h | 1 +
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c
index e28d93d232de..8df80d91399b 100644
--- a/fs/xfs/libxfs/xfs_attr.c
+++ b/fs/xfs/libxfs/xfs_attr.c
@@ -966,11 +966,13 @@ xfs_attr_set(
 	struct xfs_inode	*dp = args->dp;
 	struct xfs_mount	*mp = dp->i_mount;
 	struct xfs_trans_res	tres;
-	bool			rsvd = (args->attr_filter & XFS_ATTR_ROOT);
+	bool			rsvd;
 	int			error, local;
 	int			rmt_blks = 0;
 	unsigned int		total;
 
+	rsvd = (args->attr_filter & (XFS_ATTR_ROOT | XFS_ATTR_PARENT)) != 0;
+
 	if (xfs_is_shutdown(dp->i_mount))
 		return -EIO;
 
diff --git a/fs/xfs/libxfs/xfs_da_format.h b/fs/xfs/libxfs/xfs_da_format.h
index 25e2841084e1..3dc03968bba6 100644
--- a/fs/xfs/libxfs/xfs_da_format.h
+++ b/fs/xfs/libxfs/xfs_da_format.h
@@ -688,12 +688,15 @@ struct xfs_attr3_leafblock {
 #define	XFS_ATTR_LOCAL_BIT	0	/* attr is stored locally */
 #define	XFS_ATTR_ROOT_BIT	1	/* limit access to trusted attrs */
 #define	XFS_ATTR_SECURE_BIT	2	/* limit access to secure attrs */
+#define	XFS_ATTR_PARENT_BIT	3	/* parent pointer attrs */
 #define	XFS_ATTR_INCOMPLETE_BIT	7	/* attr in middle of create/delete */
 #define XFS_ATTR_LOCAL		(1u << XFS_ATTR_LOCAL_BIT)
 #define XFS_ATTR_ROOT		(1u << XFS_ATTR_ROOT_BIT)
 #define XFS_ATTR_SECURE		(1u << XFS_ATTR_SECURE_BIT)
+#define XFS_ATTR_PARENT		(1u << XFS_ATTR_PARENT_BIT)
 #define XFS_ATTR_INCOMPLETE	(1u << XFS_ATTR_INCOMPLETE_BIT)
-#define XFS_ATTR_NSP_ONDISK_MASK	(XFS_ATTR_ROOT | XFS_ATTR_SECURE)
+#define XFS_ATTR_NSP_ONDISK_MASK \
+			(XFS_ATTR_ROOT | XFS_ATTR_SECURE | XFS_ATTR_PARENT)
 
 /*
  * Alignment for namelist and valuelist entries (since they are mixed
diff --git a/fs/xfs/libxfs/xfs_log_format.h b/fs/xfs/libxfs/xfs_log_format.h
index b351b9dc6561..eea53874fde8 100644
--- a/fs/xfs/libxfs/xfs_log_format.h
+++ b/fs/xfs/libxfs/xfs_log_format.h
@@ -917,6 +917,7 @@ struct xfs_icreate_log {
  */
 #define XFS_ATTRI_FILTER_MASK		(XFS_ATTR_ROOT | \
 					 XFS_ATTR_SECURE | \
+					 XFS_ATTR_PARENT | \
 					 XFS_ATTR_INCOMPLETE)
 
 /*
-- 
2.25.1


  parent reply	other threads:[~2022-07-18 20:20 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-18 20:20 [PATCH v2 00/18] Parent Pointers Allison Henderson
2022-07-18 20:20 ` [PATCH v2 01/18] xfs: Fix multi-transaction larp replay Allison Henderson
2022-07-18 20:20 ` [PATCH v2 02/18] xfs: Increase XFS_DEFER_OPS_NR_INODES to 5 Allison Henderson
2022-07-18 20:20 ` [PATCH v2 03/18] xfs: Hold inode locks in xfs_ialloc Allison Henderson
2022-07-18 20:20 ` [PATCH v2 04/18] xfs: Hold inode locks in xfs_trans_alloc_dir Allison Henderson
2022-07-18 20:20 ` [PATCH v2 05/18] xfs: get directory offset when adding directory name Allison Henderson
2022-07-18 20:20 ` [PATCH v2 06/18] xfs: get directory offset when removing " Allison Henderson
2022-07-18 20:20 ` [PATCH v2 07/18] xfs: get directory offset when replacing a " Allison Henderson
2022-07-18 20:20 ` Allison Henderson [this message]
2022-07-18 20:20 ` [PATCH v2 09/18] xfs: define parent pointer xattr format Allison Henderson
2022-07-18 20:20 ` [PATCH v2 10/18] xfs: Add xfs_verify_pptr Allison Henderson
2022-07-18 20:20 ` [PATCH v2 11/18] xfs: extend transaction reservations for parent attributes Allison Henderson
2022-07-18 20:20 ` [PATCH v2 12/18] xfs: parent pointer attribute creation Allison Henderson
2022-07-18 20:20 ` [PATCH v2 13/18] xfs: add parent attributes to link Allison Henderson
2022-07-18 20:20 ` [PATCH v2 14/18] xfs: remove parent pointers in unlink Allison Henderson
2022-07-18 20:20 ` [PATCH v2 15/18] xfs: Add parent pointers to rename Allison Henderson
2022-07-18 20:20 ` [PATCH v2 16/18] xfs: Add the parent pointer support to the superblock version 5 Allison Henderson
2022-07-18 20:20 ` [PATCH v2 17/18] xfs: Add helper function xfs_attr_list_context_init Allison Henderson
2022-07-18 20:20 ` [PATCH v2 18/18] xfs: Add parent pointer ioctl Allison Henderson

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=20220718202022.6598-9-allison.henderson@oracle.com \
    --to=allison.henderson@oracle.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox