summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_extfree_item.c
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@kernel.org>2023-11-30 11:44:56 -0800
committerDarrick J. Wong <djwong@kernel.org>2023-12-06 18:45:16 -0800
commitbd3a88f6b71c7509566b44b7021581191cc11ae3 (patch)
tree8d70c82cf755c2129d5e916907bfa6eca98277f1 /fs/xfs/xfs_extfree_item.c
parentf3fd7f6fce1cc9b8eb59705b27f823330207b7c9 (diff)
downloadlwn-bd3a88f6b71c7509566b44b7021581191cc11ae3.tar.gz
lwn-bd3a88f6b71c7509566b44b7021581191cc11ae3.zip
xfs: use xfs_defer_create_done for the relogging operation
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>
Diffstat (limited to 'fs/xfs/xfs_extfree_item.c')
-rw-r--r--fs/xfs/xfs_extfree_item.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/xfs/xfs_extfree_item.c b/fs/xfs/xfs_extfree_item.c
index d07cdc3eb809..807398479187 100644
--- a/fs/xfs/xfs_extfree_item.c
+++ b/fs/xfs/xfs_extfree_item.c
@@ -691,9 +691,10 @@ xfs_efi_item_match(
static struct xfs_log_item *
xfs_efi_item_relog(
struct xfs_log_item *intent,
+ struct xfs_log_item *done_item,
struct xfs_trans *tp)
{
- struct xfs_efd_log_item *efdp;
+ struct xfs_efd_log_item *efdp = EFD_ITEM(done_item);
struct xfs_efi_log_item *efip;
struct xfs_extent *extp;
unsigned int count;
@@ -701,11 +702,8 @@ xfs_efi_item_relog(
count = EFI_ITEM(intent)->efi_format.efi_nextents;
extp = EFI_ITEM(intent)->efi_format.efi_extents;
- tp->t_flags |= XFS_TRANS_DIRTY;
- efdp = xfs_trans_get_efd(tp, EFI_ITEM(intent), count);
efdp->efd_next_extent = count;
memcpy(efdp->efd_format.efd_extents, extp, count * sizeof(*extp));
- set_bit(XFS_LI_DIRTY, &efdp->efd_item.li_flags);
efip = xfs_efi_init(tp->t_mountp, count);
memcpy(efip->efi_format.efi_extents, extp, count * sizeof(*extp));