aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_refcount_item.c
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2022-05-04 11:46:21 +1000
committerDave Chinner <david@fromorbit.com>2022-05-04 11:46:21 +1000
commitbb7b1c9c5dd3d24db3f296e365570fd50c8ca80c (patch)
tree13b432e60de6cae8e36288d4f4cca079cd72212c /fs/xfs/xfs_refcount_item.c
parentxfs: add log item flags to indicate intents (diff)
downloadlinux-dev-bb7b1c9c5dd3d24db3f296e365570fd50c8ca80c.tar.xz
linux-dev-bb7b1c9c5dd3d24db3f296e365570fd50c8ca80c.zip
xfs: tag transactions that contain intent done items
Intent whiteouts will require extra work to be done during transaction commit if the transaction contains an intent done item. To determine if a transaction contains an intent done item, we want to avoid having to walk all the items in the transaction to check if they are intent done items. Hence when we add an intent done item to a transaction, tag the transaction to indicate that it contains such an item. We don't tag the transaction when the defer ops is relogging an intent to move it forward in the log. Whiteouts will never apply to these cases, so we don't need to bother looking for them. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Allison Henderson <allison.henderson@oracle.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_refcount_item.c')
-rw-r--r--fs/xfs/xfs_refcount_item.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/xfs/xfs_refcount_item.c b/fs/xfs/xfs_refcount_item.c
index 71225d094e03..b37a9d2ce652 100644
--- a/fs/xfs/xfs_refcount_item.c
+++ b/fs/xfs/xfs_refcount_item.c
@@ -262,7 +262,7 @@ xfs_trans_log_finish_refcount_update(
* 1.) releases the CUI and frees the CUD
* 2.) shuts down the filesystem
*/
- tp->t_flags |= XFS_TRANS_DIRTY;
+ tp->t_flags |= XFS_TRANS_DIRTY | XFS_TRANS_HAS_INTENT_DONE;
set_bit(XFS_LI_DIRTY, &cudp->cud_item.li_flags);
return error;