]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: use xfs_defer_create_done for the relogging operation
authorDarrick J. Wong <djwong@kernel.org>
Mon, 15 Apr 2024 23:07:32 +0000 (16:07 -0700)
committerDarrick J. Wong <djwong@kernel.org>
Wed, 17 Apr 2024 21:06:23 +0000 (14:06 -0700)
Source kernel commit: bd3a88f6b71c7509566b44b7021581191cc11ae3

Now that we have a helper to handle creating a log intent done item and
updating all the necessary state flags, use it to reduce boilerplate in
the ->iop_relog implementations.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
include/xfs_trans.h
libxfs/xfs_defer.c

index 8371bc7e8a4321c44f402301b7c6b3938a33fbec..ee250d521118d0a202e2859edccc11f4836e60c1 100644 (file)
@@ -158,7 +158,7 @@ libxfs_trans_read_buf(
 }
 
 #define xfs_log_item_in_current_chkpt(lip)     (false)
-#define xfs_trans_item_relog(lip, tp)          (NULL)
+#define xfs_trans_item_relog(lip, dontcare, tp)        (NULL)
 
 /* Contorted mess to make gcc shut up about unused vars. */
 #define xlog_grant_push_threshold(log, need)    \
index 1be9554e1b86f3df90f32076663088622502f48e..43117099cc4c7da46419f474a7adbfe8c6c25921 100644 (file)
@@ -495,7 +495,11 @@ xfs_defer_relog(
 
                trace_xfs_defer_relog_intent((*tpp)->t_mountp, dfp);
                XFS_STATS_INC((*tpp)->t_mountp, defer_relog);
-               dfp->dfp_intent = xfs_trans_item_relog(dfp->dfp_intent, *tpp);
+
+               xfs_defer_create_done(*tpp, dfp);
+               dfp->dfp_intent = xfs_trans_item_relog(dfp->dfp_intent,
+                               dfp->dfp_done, *tpp);
+               dfp->dfp_done = NULL;
        }
 
        if ((*tpp)->t_flags & XFS_TRANS_DIRTY)