Hi Chandan,
Please pull this branch with changes for xfs for 6.8-rc1.
As usual, I did a test-merge with the main upstream branch as of a few
minutes ago, and didn't see any conflicts. Please let me know if you
encounter any problems.
--D
The following changes since commit 67d70e02027c6a7419d0d8f1587ac84c4e3d580d:
xfs: move ->iop_recover to xfs_defer_op_type (2023-12-06 18:17:23 -0800)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/reconstruct-defer-cleanups-6.8_2023-12-06
for you to fetch changes up to f0dba2bf31c65d93a6ae3a7e07e765b9e613aa2c:
xfs: move ->iop_relog to struct xfs_defer_op_type (2023-12-06 18:17:24 -0800)
----------------------------------------------------------------
xfs: continue removing defer item boilerplate [v2]
Now that we've restructured log intent item recovery to reconstruct the
incore deferred work state, apply further cleanups to that code to
remove boilerplate that is duplicated across all the _item.c files.
Having done that, collapse a bunch of trivial helpers to reduce the
overall call chain. That enables us to refactor the relog code so that
the ->relog_item implementations only have to know how to format the
implementation-specific data encoded in an intent item and don't
themselves have to handle the log item juggling.
v2: pick up rvb tags
This has been lightly tested with fstests. Enjoy!
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
----------------------------------------------------------------
Darrick J. Wong (9):
xfs: don't set XFS_TRANS_HAS_INTENT_DONE when there's no ATTRD log item
xfs: hoist intent done flag setting to ->finish_item callsite
xfs: collapse the ->finish_item helpers
xfs: hoist ->create_intent boilerplate to its callsite
xfs: use xfs_defer_create_done for the relogging operation
xfs: clean out XFS_LI_DIRTY setting boilerplate from ->iop_relog
xfs: hoist xfs_trans_add_item calls to defer ops functions
xfs: collapse the ->create_done functions
xfs: move ->iop_relog to struct xfs_defer_op_type
fs/xfs/libxfs/xfs_defer.c | 55 ++++++++++-
fs/xfs/libxfs/xfs_defer.h | 3 +
fs/xfs/xfs_attr_item.c | 137 +++++++------------------
fs/xfs/xfs_bmap_item.c | 115 +++++++--------------
fs/xfs/xfs_extfree_item.c | 242 +++++++++++++++++----------------------------
fs/xfs/xfs_refcount_item.c | 113 +++++++--------------
fs/xfs/xfs_rmap_item.c | 113 +++++++--------------
fs/xfs/xfs_trans.h | 10 --
8 files changed, 284 insertions(+), 504 deletions(-)
Hi Chandan, Please pull this branch with changes for xfs for 6.8-rc1. As usual, I did a test-merge with the main upstream branch as of a few minutes ago, and didn't see any conflicts. Please let me know if you encounter any problems. --D The following changes since commit 67d70e02027c6a7419d0d8f1587ac84c4e3d580d: xfs: move ->iop_recover to xfs_defer_op_type (2023-12-06 18:17:23 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux.git tags/reconstruct-defer-cleanups-6.8_2023-12-06 for you to fetch changes up to f0dba2bf31c65d93a6ae3a7e07e765b9e613aa2c: xfs: move ->iop_relog to struct xfs_defer_op_type (2023-12-06 18:17:24 -0800) ---------------------------------------------------------------- xfs: continue removing defer item boilerplate [v2] Now that we've restructured log intent item recovery to reconstruct the incore deferred work state, apply further cleanups to that code to remove boilerplate that is duplicated across all the _item.c files. Having done that, collapse a bunch of trivial helpers to reduce the overall call chain. That enables us to refactor the relog code so that the ->relog_item implementations only have to know how to format the implementation-specific data encoded in an intent item and don't themselves have to handle the log item juggling. v2: pick up rvb tags This has been lightly tested with fstests. Enjoy! Signed-off-by: Darrick J. Wong <djwong@kernel.org> ---------------------------------------------------------------- Darrick J. Wong (9): xfs: don't set XFS_TRANS_HAS_INTENT_DONE when there's no ATTRD log item xfs: hoist intent done flag setting to ->finish_item callsite xfs: collapse the ->finish_item helpers xfs: hoist ->create_intent boilerplate to its callsite xfs: use xfs_defer_create_done for the relogging operation xfs: clean out XFS_LI_DIRTY setting boilerplate from ->iop_relog xfs: hoist xfs_trans_add_item calls to defer ops functions xfs: collapse the ->create_done functions xfs: move ->iop_relog to struct xfs_defer_op_type fs/xfs/libxfs/xfs_defer.c | 55 ++++++++++- fs/xfs/libxfs/xfs_defer.h | 3 + fs/xfs/xfs_attr_item.c | 137 +++++++------------------ fs/xfs/xfs_bmap_item.c | 115 +++++++-------------- fs/xfs/xfs_extfree_item.c | 242 +++++++++++++++++---------------------------- fs/xfs/xfs_refcount_item.c | 113 +++++++-------------- fs/xfs/xfs_rmap_item.c | 113 +++++++-------------- fs/xfs/xfs_trans.h | 10 -- 8 files changed, 284 insertions(+), 504 deletions(-)