@@ -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, dip, tp) (NULL)
/* Contorted mess to make gcc shut up about unused vars. */
#define xlog_grant_push_threshold(log, need) \
@@ -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)