Hi Linus, Can you please pull the latest XFS updates fixes from the tag below? These are a set of regression fixes discovered on recent kernels. I was hoping to send this to you a week and half ago, but events out of my control delayed finalising the changes until early this week. Whilst the diffstat looks large for this stage of the merge window, a large chunk of it comes from moving the guts of one function from one file to another i.e. it's the same code, it is just run in a different context where it is safe to hold a specific lock. Otherwise the individual changes are relatively small and straigtht forward. The code in the XFS branch merges cleanly with your tree as of commit 5f63595ebd82 ("Merge tag 'input-for-v6.4-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input"). Let me know if you see something different or unexpected. -Dave. ---------------------------------------------------------------- The following changes since commit 9561de3a55bed6bdd44a12820ba81ec416e705a7: Linux 6.4-rc5 (2023-06-04 14:04:27 -0400) are available in the Git repository at: git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git tags/xfs-6.4-rc5-fixes for you to fetch changes up to d4d12c02bf5f768f1b423c7ae2909c5afdfe0d5f: xfs: collect errors from inodegc for unlinked inode recovery (2023-06-05 14:48:15 +1000) ---------------------------------------------------------------- xfs: fixes for 6.4-rc5 This update contains: - Propagate unlinked inode list corruption back up to log recovery (regression fix). - improve corruption detection for AGFL entries, AGFL indexes and XEFI extents (syzkaller fuzzer oops report). - Avoid double perag reference release (regression fix). - Improve extent merging detection in scrub (regression fix). - Fix a new undefined high bit shift (regression fix). - Fix for AGF vs inode cluster buffer deadlock (regression fix). ---------------------------------------------------------------- Darrick J. Wong (1): xfs: fix broken logic when detecting mergeable bmap records Dave Chinner (9): xfs: buffer pins need to hold a buffer reference xfs: restore allocation trylock iteration xfs: defered work could create precommits xfs: fix AGF vs inode cluster buffer deadlock xfs: fix double xfs_perag_rele() in xfs_filestream_pick_ag() xfs: fix agf/agfl verification on v4 filesystems xfs: validity check agbnos on the AGFL xfs: validate block number being freed before adding to xefi xfs: collect errors from inodegc for unlinked inode recovery Geert Uytterhoeven (1): xfs: Fix undefined behavior of shift into sign bit fs/xfs/libxfs/xfs_ag.c | 5 +++- fs/xfs/libxfs/xfs_alloc.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++--------------------- fs/xfs/libxfs/xfs_alloc.h | 6 ++--- fs/xfs/libxfs/xfs_bmap.c | 10 ++++++-- fs/xfs/libxfs/xfs_bmap_btree.c | 7 ++++-- fs/xfs/libxfs/xfs_ialloc.c | 24 ++++++++++++------- fs/xfs/libxfs/xfs_log_format.h | 9 ++++++- fs/xfs/libxfs/xfs_refcount.c | 13 ++++++++--- fs/xfs/libxfs/xfs_trans_inode.c | 113 +++++++--------------------------------------------------------------------------------- fs/xfs/scrub/bmap.c | 25 ++++++++++---------- fs/xfs/scrub/scrub.h | 8 +++---- fs/xfs/xfs_buf_item.c | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++------------------ fs/xfs/xfs_filestream.c | 1 - fs/xfs/xfs_icache.c | 46 +++++++++++++++++++++++++++++------- fs/xfs/xfs_icache.h | 4 ++-- fs/xfs/xfs_inode.c | 20 +++++----------- fs/xfs/xfs_inode.h | 2 +- fs/xfs/xfs_inode_item.c | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_inode_item.h | 1 + fs/xfs/xfs_log_recover.c | 19 +++++++-------- fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_reflink.c | 4 +++- fs/xfs/xfs_super.c | 1 + fs/xfs/xfs_trans.c | 9 ++++++- 24 files changed, 427 insertions(+), 229 deletions(-) -- Dave Chinner david@xxxxxxxxxxxxx