All of lore.kernel.org
 help / color / mirror / Atom feed
From: Allison Henderson <allison.henderson@oracle.com>
To: linux-xfs@vger.kernel.org
Subject: [PATCH v13 01/10] xfs: Add helper xfs_attr_node_remove_step
Date: Thu, 22 Oct 2020 23:34:26 -0700	[thread overview]
Message-ID: <20201023063435.7510-2-allison.henderson@oracle.com> (raw)
In-Reply-To: <20201023063435.7510-1-allison.henderson@oracle.com>

From: Allison Collins <allison.henderson@oracle.com>

This patch adds a new helper function xfs_attr_node_remove_step.  This
will help simplify and modularize the calling function
xfs_attr_node_remove.

Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
---
 fs/xfs/libxfs/xfs_attr.c | 46 ++++++++++++++++++++++++++++++++++------------
 1 file changed, 34 insertions(+), 12 deletions(-)

diff --git a/fs/xfs/libxfs/xfs_attr.c b/fs/xfs/libxfs/xfs_attr.c
index fd8e641..f4d39bf 100644
--- a/fs/xfs/libxfs/xfs_attr.c
+++ b/fs/xfs/libxfs/xfs_attr.c
@@ -1228,19 +1228,14 @@ xfs_attr_node_remove_rmt(
  * the root node (a special case of an intermediate node).
  */
 STATIC int
-xfs_attr_node_removename(
-	struct xfs_da_args	*args)
+xfs_attr_node_remove_step(
+	struct xfs_da_args	*args,
+	struct xfs_da_state	*state)
 {
-	struct xfs_da_state	*state;
 	struct xfs_da_state_blk	*blk;
 	int			retval, error;
 	struct xfs_inode	*dp = args->dp;
 
-	trace_xfs_attr_node_removename(args);
-
-	error = xfs_attr_node_removename_setup(args, &state);
-	if (error)
-		goto out;
 
 	/*
 	 * If there is an out-of-line value, de-allocate the blocks.
@@ -1250,7 +1245,7 @@ xfs_attr_node_removename(
 	if (args->rmtblkno > 0) {
 		error = xfs_attr_node_remove_rmt(args, state);
 		if (error)
-			goto out;
+			return error;
 	}
 
 	/*
@@ -1267,18 +1262,45 @@ xfs_attr_node_removename(
 	if (retval && (state->path.active > 1)) {
 		error = xfs_da3_join(state);
 		if (error)
-			goto out;
+			return error;
 		error = xfs_defer_finish(&args->trans);
 		if (error)
-			goto out;
+			return error;
 		/*
 		 * Commit the Btree join operation and start a new trans.
 		 */
 		error = xfs_trans_roll_inode(&args->trans, dp);
 		if (error)
-			goto out;
+			return error;
 	}
 
+	return error;
+}
+
+/*
+ * Remove a name from a B-tree attribute list.
+ *
+ * This routine will find the blocks of the name to remove, remove them and
+ * shirnk the tree if needed.
+ */
+STATIC int
+xfs_attr_node_removename(
+	struct xfs_da_args	*args)
+{
+	struct xfs_da_state	*state;
+	int			error;
+	struct xfs_inode	*dp = args->dp;
+
+	trace_xfs_attr_node_removename(args);
+
+	error = xfs_attr_node_removename_setup(args, &state);
+	if (error)
+		goto out;
+
+	error = xfs_attr_node_remove_step(args, state);
+	if (error)
+		goto out;
+
 	/*
 	 * If the result is small enough, push it all into the inode.
 	 */
-- 
2.7.4


  reply	other threads:[~2020-10-23  6:36 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-23  6:34 [PATCH v13 00/10] xfs: Delayed Attributes Allison Henderson
2020-10-23  6:34 ` Allison Henderson [this message]
2020-10-27  7:03   ` [PATCH v13 01/10] xfs: Add helper xfs_attr_node_remove_step Chandan Babu R
2020-10-27 22:23     ` Allison Henderson
2020-10-27 12:15   ` Brian Foster
2020-10-27 15:33     ` Allison Henderson
2020-11-10 23:12   ` Darrick J. Wong
2020-11-13  1:38     ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 02/10] xfs: Add delay ready attr remove routines Allison Henderson
2020-10-27  9:59   ` Chandan Babu R
2020-10-27 15:32     ` Allison Henderson
2020-10-28 12:04       ` Chandan Babu R
2020-10-29  1:29         ` Allison Henderson
2020-11-14  0:53           ` Darrick J. Wong
2020-10-27 12:16   ` Brian Foster
2020-10-27 22:27     ` Allison Henderson
2020-10-28 12:28       ` Brian Foster
2020-10-29  1:03         ` Allison Henderson
2020-11-10 23:15     ` Darrick J. Wong
2020-11-10 23:43   ` Darrick J. Wong
2020-11-11  0:28     ` Dave Chinner
2020-11-13  4:00       ` Allison Henderson
2020-11-13  3:43     ` Allison Henderson
2020-11-14  1:18       ` Darrick J. Wong
2020-11-16  5:12         ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 03/10] xfs: Add delay ready attr set routines Allison Henderson
2020-10-27 13:32   ` Chandan Babu R
2020-11-10 21:57     ` Darrick J. Wong
2020-11-13  1:33       ` Allison Henderson
2020-11-13  9:16         ` Chandan Babu R
2020-11-13 17:12           ` Allison Henderson
2020-11-14  1:20             ` Darrick J. Wong
2020-11-10 23:10   ` Darrick J. Wong
2020-11-13  1:38     ` Allison Henderson
2020-11-14  1:35       ` Darrick J. Wong
2020-11-16  5:25         ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 04/10] xfs: Rename __xfs_attr_rmtval_remove Allison Henderson
2020-10-23  6:34 ` [PATCH v13 05/10] xfs: Set up infastructure for deferred attribute operations Allison Henderson
2020-11-10 21:51   ` Darrick J. Wong
2020-11-11  3:44     ` Darrick J. Wong
2020-11-13 17:06       ` Allison Henderson
2020-11-13  1:32     ` Allison Henderson
2020-11-14  2:00       ` Darrick J. Wong
2020-11-16  7:41         ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 06/10] xfs: Add xfs_attr_set_deferred and xfs_attr_remove_deferred Allison Henderson
2020-11-10 20:15   ` Darrick J. Wong
2020-11-13  1:27     ` Allison Henderson
2020-11-14  2:03       ` Darrick J. Wong
2020-10-23  6:34 ` [PATCH v13 07/10] xfs: Add feature bit XFS_SB_FEAT_INCOMPAT_LOG_DELATTR Allison Henderson
2020-11-10 20:10   ` Darrick J. Wong
2020-11-13  1:27     ` Allison Henderson
2020-11-19  2:36   ` Darrick J. Wong
2020-11-19  4:01     ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 08/10] xfs: Enable delayed attributes Allison Henderson
2020-10-23  6:34 ` [PATCH v13 09/10] xfs: Remove unused xfs_attr_*_args Allison Henderson
2020-11-10 20:07   ` Darrick J. Wong
2020-11-13  1:27     ` Allison Henderson
2020-10-23  6:34 ` [PATCH v13 10/10] xfs: Add delayed attributes error tag 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=20201023063435.7510-2-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 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.