xfs: don't set XFS_TRANS_HAS_INTENT_DONE when there's no ATTRD log item
authorDarrick J. Wong <djwong@kernel.org>
Thu, 30 Nov 2023 18:27:10 +0000 (10:27 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 7 Dec 2023 02:45:15 +0000 (18:45 -0800)
commit172538beba82e7b65d3d7c84cb558f287381cd7a
tree0ca6dc765e90313b9ca8810cfe6e12146072b81c
parentdb7ccc0bac2add5a41b66578e376b49328fc99d0
xfs: don't set XFS_TRANS_HAS_INTENT_DONE when there's no ATTRD log item

XFS_TRANS_HAS_INTENT_DONE is a flag to the CIL that we've added a log
intent done item to the transaction.  This enables an optimization
wherein we avoid writing out log intent and log intent done items if
they would have ended up in the same checkpoint.  This reduces writes to
the ondisk log and speeds up recovery as a result.

However, callers can use the defer ops machinery to modify xattrs
without using the log items.  In this situation, there won't be an
intent done item, so we do not need to set the flag.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/xfs_attr_item.c