]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: Remove unused xfs_attr_*_args
authorAllison Henderson <allison.henderson@oracle.com>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
committerEric Sandeen <sandeen@sandeen.net>
Wed, 22 Jun 2022 19:28:52 +0000 (14:28 -0500)
Source kernel commit: 73159fc27c6944ebe55e6652d6a1981d7cb3eb4a

Remove xfs_attr_set_args, xfs_attr_remove_args, and xfs_attr_trans_roll.
These high level loops are now driven by the delayed operations code,
and can be removed.

Additionally collapse in the leaf_bp parameter of xfs_attr_set_iter
since we only have one caller that passes dac->leaf_bp

Signed-off-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Chandan Babu R <chandanrlinux@gmail.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/defer_item.c
libxfs/xfs_attr.c
libxfs/xfs_attr.h
libxfs/xfs_attr_remote.c

index fc56d3bf62c804400b36e7d82a8f586ac20715a0..e920dc9fcde187551225e11e62d541be7f59d3b5 100644 (file)
@@ -512,7 +512,7 @@ xfs_attr_finish_item(
 
        switch (op) {
        case XFS_ATTR_OP_FLAGS_SET:
-               error = xfs_attr_set_iter(dac, &dac->leaf_bp);
+               error = xfs_attr_set_iter(dac);
                break;
        case XFS_ATTR_OP_FLAGS_REMOVE:
                ASSERT(XFS_IFORK_Q(args->dp));
index 67a4cddd3e5e0705dbc78743aecba150c4f740ae..7631f880c3e4c156126594c616a0c2b9067ed992 100644 (file)
@@ -244,64 +244,9 @@ xfs_attr_is_shortform(
                ip->i_afp->if_nextents == 0);
 }
 
-/*
- * Checks to see if a delayed attribute transaction should be rolled.  If so,
- * transaction is finished or rolled as needed.
- */
-STATIC int
-xfs_attr_trans_roll(
-       struct xfs_delattr_context      *dac)
-{
-       struct xfs_da_args              *args = dac->da_args;
-       int                             error;
-
-       if (dac->flags & XFS_DAC_DEFER_FINISH) {
-               /*
-                * The caller wants us to finish all the deferred ops so that we
-                * avoid pinning the log tail with a large number of deferred
-                * ops.
-                */
-               dac->flags &= ~XFS_DAC_DEFER_FINISH;
-               error = xfs_defer_finish(&args->trans);
-       } else
-               error = xfs_trans_roll_inode(&args->trans, args->dp);
-
-       return error;
-}
-
-/*
- * Set the attribute specified in @args.
- */
-int
-xfs_attr_set_args(
-       struct xfs_da_args              *args)
-{
-       struct xfs_buf                  *leaf_bp = NULL;
-       int                             error = 0;
-       struct xfs_delattr_context      dac = {
-               .da_args        = args,
-       };
-
-       do {
-               error = xfs_attr_set_iter(&dac, &leaf_bp);
-               if (error != -EAGAIN)
-                       break;
-
-               error = xfs_attr_trans_roll(&dac);
-               if (error) {
-                       if (leaf_bp)
-                               xfs_trans_brelse(args->trans, leaf_bp);
-                       return error;
-               }
-       } while (true);
-
-       return error;
-}
-
 STATIC int
 xfs_attr_sf_addname(
-       struct xfs_delattr_context      *dac,
-       struct xfs_buf                  **leaf_bp)
+       struct xfs_delattr_context      *dac)
 {
        struct xfs_da_args              *args = dac->da_args;
        struct xfs_inode                *dp = args->dp;
@@ -320,7 +265,7 @@ xfs_attr_sf_addname(
         * It won't fit in the shortform, transform to a leaf block.  GROT:
         * another possible req'mt for a double-split btree op.
         */
-       error = xfs_attr_shortform_to_leaf(args, leaf_bp);
+       error = xfs_attr_shortform_to_leaf(args, &dac->leaf_bp);
        if (error)
                return error;
 
@@ -329,7 +274,7 @@ xfs_attr_sf_addname(
         * push cannot grab the half-baked leaf buffer and run into problems
         * with the write verifier.
         */
-       xfs_trans_bhold(args->trans, *leaf_bp);
+       xfs_trans_bhold(args->trans, dac->leaf_bp);
 
        /*
         * We're still in XFS_DAS_UNINIT state here.  We've converted
@@ -337,7 +282,6 @@ xfs_attr_sf_addname(
         * add.
         */
        trace_xfs_attr_sf_addname_return(XFS_DAS_UNINIT, args->dp);
-       dac->flags |= XFS_DAC_DEFER_FINISH;
        return -EAGAIN;
 }
 
@@ -350,8 +294,7 @@ xfs_attr_sf_addname(
  */
 int
 xfs_attr_set_iter(
-       struct xfs_delattr_context      *dac,
-       struct xfs_buf                  **leaf_bp)
+       struct xfs_delattr_context      *dac)
 {
        struct xfs_da_args              *args = dac->da_args;
        struct xfs_inode                *dp = args->dp;
@@ -370,14 +313,14 @@ xfs_attr_set_iter(
                 * release the hold once we return with a clean transaction.
                 */
                if (xfs_attr_is_shortform(dp))
-                       return xfs_attr_sf_addname(dac, leaf_bp);
-               if (*leaf_bp != NULL) {
-                       xfs_trans_bhold_release(args->trans, *leaf_bp);
-                       *leaf_bp = NULL;
+                       return xfs_attr_sf_addname(dac);
+               if (dac->leaf_bp != NULL) {
+                       xfs_trans_bhold_release(args->trans, dac->leaf_bp);
+                       dac->leaf_bp = NULL;
                }
 
                if (xfs_attr_is_leaf(dp)) {
-                       error = xfs_attr_leaf_try_add(args, *leaf_bp);
+                       error = xfs_attr_leaf_try_add(args, dac->leaf_bp);
                        if (error == -ENOSPC) {
                                error = xfs_attr3_leaf_to_node(args);
                                if (error)
@@ -396,7 +339,6 @@ xfs_attr_set_iter(
                                 * be a node, so we'll fall down into the node
                                 * handling code below
                                 */
-                               dac->flags |= XFS_DAC_DEFER_FINISH;
                                trace_xfs_attr_set_iter_return(
                                        dac->dela_state, args->dp);
                                return -EAGAIN;
@@ -687,32 +629,6 @@ xfs_attr_lookup(
        return xfs_attr_node_hasname(args, NULL);
 }
 
-/*
- * Remove the attribute specified in @args.
- */
-int
-xfs_attr_remove_args(
-       struct xfs_da_args      *args)
-{
-       int                             error;
-       struct xfs_delattr_context      dac = {
-               .da_args        = args,
-       };
-
-       do {
-               error = xfs_attr_remove_iter(&dac);
-               if (error != -EAGAIN)
-                       break;
-
-               error = xfs_attr_trans_roll(&dac);
-               if (error)
-                       return error;
-
-       } while (true);
-
-       return error;
-}
-
 /*
  * Note: If args->value is NULL the attribute will be removed, just like the
  * Linux ->setattr API.
@@ -1309,7 +1225,6 @@ xfs_attr_node_addname(
                         * this. dela_state is still unset by this function at
                         * this point.
                         */
-                       dac->flags |= XFS_DAC_DEFER_FINISH;
                        trace_xfs_attr_node_addname_return(
                                        dac->dela_state, args->dp);
                        return -EAGAIN;
@@ -1324,7 +1239,6 @@ xfs_attr_node_addname(
                error = xfs_da3_split(state);
                if (error)
                        goto out;
-               dac->flags |= XFS_DAC_DEFER_FINISH;
        } else {
                /*
                 * Addition succeeded, update Btree hashvals.
@@ -1578,7 +1492,6 @@ xfs_attr_remove_iter(
                        if (error)
                                goto out;
                        dac->dela_state = XFS_DAS_RM_NAME;
-                       dac->flags |= XFS_DAC_DEFER_FINISH;
                        trace_xfs_attr_remove_iter_return(dac->dela_state, args->dp);
                        return -EAGAIN;
                }
@@ -1606,7 +1519,6 @@ xfs_attr_remove_iter(
                        if (error)
                                goto out;
 
-                       dac->flags |= XFS_DAC_DEFER_FINISH;
                        dac->dela_state = XFS_DAS_RM_SHRINK;
                        trace_xfs_attr_remove_iter_return(
                                        dac->dela_state, args->dp);
index b52156ad8e6ee47ae07d7c703f3c44fd1217298c..5331551d5939d67691360756b986a405b4b5b5be 100644 (file)
@@ -457,8 +457,7 @@ enum xfs_delattr_state {
 /*
  * Defines for xfs_delattr_context.flags
  */
-#define XFS_DAC_DEFER_FINISH           0x01 /* finish the transaction */
-#define XFS_DAC_LEAF_ADDNAME_INIT      0x02 /* xfs_attr_leaf_addname init*/
+#define XFS_DAC_LEAF_ADDNAME_INIT      0x01 /* xfs_attr_leaf_addname init*/
 
 /*
  * Context used for keeping track of delayed attribute operations
@@ -516,10 +515,7 @@ bool xfs_attr_is_leaf(struct xfs_inode *ip);
 int xfs_attr_get_ilocked(struct xfs_da_args *args);
 int xfs_attr_get(struct xfs_da_args *args);
 int xfs_attr_set(struct xfs_da_args *args);
-int xfs_attr_set_args(struct xfs_da_args *args);
-int xfs_attr_set_iter(struct xfs_delattr_context *dac,
-                     struct xfs_buf **leaf_bp);
-int xfs_attr_remove_args(struct xfs_da_args *args);
+int xfs_attr_set_iter(struct xfs_delattr_context *dac);
 int xfs_attr_remove_iter(struct xfs_delattr_context *dac);
 bool xfs_attr_namecheck(const void *name, size_t length);
 void xfs_delattr_context_init(struct xfs_delattr_context *dac,
index afa932904602fc19bd9bec7eca1f239b677e24e5..5dc93c3b26d4be971cf0812dc34f609abe8c83f6 100644 (file)
@@ -694,7 +694,6 @@ xfs_attr_rmtval_remove(
         * the parent
         */
        if (!done) {
-               dac->flags |= XFS_DAC_DEFER_FINISH;
                trace_xfs_attr_rmtval_remove_return(dac->dela_state, args->dp);
                return -EAGAIN;
        }