Hi Darrick, This 5.4.y backport series contains fixes from v5.10 release. This patchset has been tested by executing fstests (via kdevops) using the following XFS configurations, 1. No CRC (with 512 and 4k block size). 2. Reflink/Rmapbt (1k and 4k block size). 3. Reflink without Rmapbt. 4. External log device. The following is the list of commits along with corresponding dependent commits. 1. xfs: log new intent items created as part of finishing recovered intent items Dependent commits 1. xfs: remove the xfs_efi_log_item_t typedef 2. xfs: remove the xfs_efd_log_item_t typedef 3. xfs: remove the xfs_inode_log_item_t typedef 4. xfs: factor out a xfs_defer_create_intent helper 5. xfs: merge the ->log_item defer op into ->create_intent 6. xfs: merge the ->diff_items defer op into ->create_intent 7. xfs: turn dfp_intent into a xfs_log_item 8. xfs: refactor xfs_defer_finish_noroll 2. xfs: fix finobt btree block recovery ordering 3. xfs: proper replay of deferred ops queued during log recovery 4. xfs: xfs_defer_capture should absorb remaining block reservations 5 xfs: xfs_defer_capture should absorb remaining transaction reservation 6. xfs: fix an incore inode UAF in xfs_bui_recover Dependent commits 1. xfs: clean up bmap intent item recovery checking 2. xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering 7. xfs: change the order in which child and parent defer ops are finished 8. xfs: periodically relog deferred intent items Dependent commits 1. xfs: prevent UAF in xfs_log_item_in_current_chkpt 9. xfs: only relog deferred intent items if free space in the log gets low Dependent commits 1. xfs: expose the log push threshold 10. xfs: fix missing CoW blocks writeback conversion retry 11. xfs: ensure inobt record walks always make forward progress Dependent commits 1. xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks 12. xfs: sync lazy sb accounting on quiesce of read-only mounts The last commit was picked from v5.12 since failure rate of recovery loop tests would increase drastically for some xfs configurations without applying it. Brian Foster (1): xfs: sync lazy sb accounting on quiesce of read-only mounts Christoph Hellwig (8): xfs: remove the xfs_efi_log_item_t typedef xfs: remove the xfs_efd_log_item_t typedef xfs: remove the xfs_inode_log_item_t typedef xfs: factor out a xfs_defer_create_intent helper xfs: merge the ->log_item defer op into ->create_intent xfs: merge the ->diff_items defer op into ->create_intent xfs: turn dfp_intent into a xfs_log_item xfs: refactor xfs_defer_finish_noroll Darrick J. Wong (15): xfs: log new intent items created as part of finishing recovered intent items xfs: proper replay of deferred ops queued during log recovery xfs: xfs_defer_capture should absorb remaining block reservations xfs: xfs_defer_capture should absorb remaining transaction reservation xfs: clean up bmap intent item recovery checking xfs: clean up xfs_bui_item_recover iget/trans_alloc/ilock ordering xfs: fix an incore inode UAF in xfs_bui_recover xfs: change the order in which child and parent defer ops are finished xfs: periodically relog deferred intent items xfs: expose the log push threshold xfs: only relog deferred intent items if free space in the log gets low xfs: fix missing CoW blocks writeback conversion retry xfs: ensure inobt record walks always make forward progress xfs: fix the forward progress assertion in xfs_iwalk_run_callbacks xfs: prevent UAF in xfs_log_item_in_current_chkpt Dave Chinner (1): xfs: fix finobt btree block recovery ordering fs/xfs/libxfs/xfs_defer.c | 358 ++++++++++++++++++++++++-------- fs/xfs/libxfs/xfs_defer.h | 49 ++++- fs/xfs/libxfs/xfs_inode_fork.c | 2 +- fs/xfs/libxfs/xfs_trans_inode.c | 2 +- fs/xfs/xfs_aops.c | 4 +- fs/xfs/xfs_bmap_item.c | 238 +++++++++++---------- fs/xfs/xfs_bmap_item.h | 3 +- fs/xfs/xfs_extfree_item.c | 175 +++++++++------- fs/xfs/xfs_extfree_item.h | 18 +- fs/xfs/xfs_icreate_item.c | 1 + fs/xfs/xfs_inode.c | 4 +- fs/xfs/xfs_inode_item.c | 2 +- fs/xfs/xfs_inode_item.h | 4 +- fs/xfs/xfs_iwalk.c | 27 ++- fs/xfs/xfs_log.c | 68 ++++-- fs/xfs/xfs_log.h | 3 + fs/xfs/xfs_log_cil.c | 8 +- fs/xfs/xfs_log_recover.c | 160 ++++++++------ fs/xfs/xfs_mount.c | 3 +- fs/xfs/xfs_refcount_item.c | 173 ++++++++------- fs/xfs/xfs_refcount_item.h | 3 +- fs/xfs/xfs_rmap_item.c | 161 +++++++------- fs/xfs/xfs_rmap_item.h | 3 +- fs/xfs/xfs_stats.c | 4 + fs/xfs/xfs_stats.h | 1 + fs/xfs/xfs_super.c | 8 +- fs/xfs/xfs_trace.h | 1 + fs/xfs/xfs_trans.h | 10 + 28 files changed, 946 insertions(+), 547 deletions(-) -- 2.35.1