]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: Remove unneeded xfs_trans_roll_inode calls
authorAllison Collins <allison.henderson@oracle.com>
Tue, 15 Sep 2020 19:59:37 +0000 (15:59 -0400)
committerEric Sandeen <sandeen@sandeen.net>
Tue, 15 Sep 2020 19:59:37 +0000 (15:59 -0400)
Source kernel commit: 0feaef17db9ddf0d97676eaa258dc55ff504cfb6

Some calls to xfs_trans_roll_inode and xfs_defer_finish routines are not
needed. If they are the last operations executed in these functions, and
no further changes are made, then higher level routines will roll or

Signed-off-by: Allison Collins <allison.henderson@oracle.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Acked-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
libxfs/xfs_attr.c

index 760948c1410b3f9f96f534f56b6f7fe1aafa92b0..5612fa32a9a463d4c87159404e2c5b91e80d5a4b 100644 (file)
@@ -693,34 +693,15 @@ xfs_attr_leaf_addname(
                /*
                 * If the result is small enough, shrink it all into the inode.
                 */
-               if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) {
+               forkoff = xfs_attr_shortform_allfit(bp, dp);
+               if (forkoff)
                        error = xfs_attr3_leaf_to_shortform(bp, args, forkoff);
                        /* bp is gone due to xfs_da_shrink_inode */
-                       if (error)
-                               return error;
-                       error = xfs_defer_finish(&args->trans);
-                       if (error)
-                               return error;
-               }
-
-               /*
-                * Commit the remove and start the next trans in series.
-                */
-               error = xfs_trans_roll_inode(&args->trans, dp);
-
        } else if (args->rmtblkno > 0) {
                /*
                 * Added a "remote" value, just clear the incomplete flag.
                 */
                error = xfs_attr3_leaf_clearflag(args);
-               if (error)
-                       return error;
-
-               /*
-                * Commit the flag value change and start the next trans in
-                * series.
-                */
-               error = xfs_trans_roll_inode(&args->trans, args->dp);
        }
        return error;
 }
@@ -780,15 +761,11 @@ xfs_attr_leaf_removename(
        /*
         * If the result is small enough, shrink it all into the inode.
         */
-       if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) {
-               error = xfs_attr3_leaf_to_shortform(bp, args, forkoff);
+       forkoff = xfs_attr_shortform_allfit(bp, dp);
+       if (forkoff)
+               return xfs_attr3_leaf_to_shortform(bp, args, forkoff);
                /* bp is gone due to xfs_da_shrink_inode */
-               if (error)
-                       return error;
-               error = xfs_defer_finish(&args->trans);
-               if (error)
-                       return error;
-       }
+
        return 0;
 }
 
@@ -1064,18 +1041,8 @@ restart:
                        error = xfs_da3_join(state);
                        if (error)
                                goto out;
-                       error = xfs_defer_finish(&args->trans);
-                       if (error)
-                               goto out;
                }
 
-               /*
-                * Commit and start the next trans in the chain.
-                */
-               error = xfs_trans_roll_inode(&args->trans, dp);
-               if (error)
-                       goto out;
-
        } else if (args->rmtblkno > 0) {
                /*
                 * Added a "remote" value, just clear the incomplete flag.
@@ -1083,14 +1050,6 @@ restart:
                error = xfs_attr3_leaf_clearflag(args);
                if (error)
                        goto out;
-
-                /*
-                 * Commit the flag value change and start the next trans in
-                 * series.
-                 */
-               error = xfs_trans_roll_inode(&args->trans, args->dp);
-               if (error)
-                       goto out;
        }
        retval = error = 0;
 
@@ -1129,16 +1088,10 @@ xfs_attr_node_shrink(
        if (forkoff) {
                error = xfs_attr3_leaf_to_shortform(bp, args, forkoff);
                /* bp is gone due to xfs_da_shrink_inode */
-               if (error)
-                       return error;
-
-               error = xfs_defer_finish(&args->trans);
-               if (error)
-                       return error;
        } else
                xfs_trans_brelse(args->trans, bp);
 
-       return 0;
+       return error;
 }
 
 /*