Re: [ANNOUNCE] xfs-linux: for-next **REBASED** to 2909e02fec6c

Brian Foster
2021-06-22T13:02:27Z

On Sat, Jun 19, 2021 at 01:48:25PM -0700, Darrick J. Wong wrote:
> Hi folks,
>
> The for-next branch of the xfs-linux repository at:
>
> git://git.kernel.org/pub/scm/fs/xfs/xfs-linux.git
>
> has just been **REBASED**. I decided that it was just too late in the
> cycle to keep the massive CIL performance patchset since the problems
> seemed to be getting worse. I get the strong sense that the 5.15 cycle
> should concentrate on all the problems that have shook loose lately.
>
> Patches often get missed, so please check if your outstanding patches
> were in this update. If they have not been in this update, please
> resubmit them to linux-xfs@vger.kernel.org so they can be picked up in
> the next update.
>
> The new head of the for-next branch is commit:
>
> 2909e02fec6c xfs: force the log offline when log intent item recovery fails
>

FYI, I've run about 500 iterations of generic/019 and generic/475 with
the rebased for-next plus the bli use after free patches (otherwise I
inevitably hit the associated crash) overnight. There were ~20 475
failures, but those are likely accounted for by the preexisting 475
corruption issue we already know about.

Brian

> New Commits:
>
> Allison Henderson (14):
> [4126c06e25b3] xfs: Reverse apply 72b97ea40d
> [a8490f699f6e] xfs: Add xfs_attr_node_remove_name
> [6286514b63e1] xfs: Refactor xfs_attr_set_shortform
> [f0f7c502c728] xfs: Separate xfs_attr_node_addname and xfs_attr_node_addname_clear_incomplete
> [6ca5a4a1f529] xfs: Add helper xfs_attr_node_addname_find_attr
> [5d954cc09f6b] xfs: Hoist xfs_attr_node_addname
> [83c6e70789ff] xfs: Hoist xfs_attr_leaf_addname
> [3f562d092bb1] xfs: Hoist node transaction handling
> [2b74b03c13c4] xfs: Add delay ready attr remove routines
> [8f502a400982] xfs: Add delay ready attr set routines
> [0e6acf29db6f] xfs: Remove xfs_attr_rmtval_set
> [4fd084dbbd05] xfs: Clean up xfs_attr_node_addname_clear_incomplete
> [4a4957c16dc6] xfs: Fix default ASSERT in xfs_attr_set_iter
> [816c8e39b7ea] xfs: Make attr name schemes consistent
>
> Christoph Hellwig (4):
> [5a981e4ea8ff] xfs: mark xfs_bmap_set_attrforkoff static
> [54cd3aa6f810] xfs: remove ->b_offset handling for page backed buffers
> [934d1076bb2c] xfs: simplify the b_page_count calculation
> [170041f71596] xfs: cleanup error handling in xfs_buf_get_map
>
> Darrick J. Wong (36):
> [a7bcb147fef3] xfs: clean up open-coded fs block unit conversions
> [20bd8e63f30b] xfs: remove unnecessary shifts
> [1ad2cfe0a570] xfs: move the quotaoff dqrele inode walk into xfs_icache.c
> [3ea06d73e3c0] xfs: detach inode dquots at the end of inactivation
> [df60019739d8] xfs: move the inode walk functions further down
> [c1115c0cba2b] xfs: rename xfs_inode_walk functions to xfs_icwalk
> [c809d7e948a1] xfs: pass the goal of the incore inode walk to xfs_inode_walk()
> [b9baaef42f76] xfs: separate the dqrele_all inode grab logic from xfs_inode_walk_ag_grab
> [9d2793ceecb9] xfs: move xfs_inew_wait call into xfs_dqrele_inode
> [7fdff52623b4] xfs: remove iter_flags parameter from xfs_inode_walk_*
> [f427cf5c6236] xfs: remove indirect calls from xfs_inode_walk{,_ag}
> [d20d5edcf941] xfs: clean up inode state flag tests in xfs_blockgc_igrab
> [594ab00b760f] xfs: make the icwalk processing functions clean up the grab state
> [919a4ddb6841] xfs: fix radix tree tag signs
> [9d5ee8375951] xfs: pass struct xfs_eofblocks to the inode scan callback
> [f1bc5c5630f9] xfs: merge xfs_reclaim_inodes_ag into xfs_inode_walk_ag
> [c076ae7a9361] xfs: refactor per-AG inode tagging functions
> [ebf2e3372332] Merge tag 'xfs-buf-bulk-alloc-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs into xfs-5.14-merge2
> [c3eabd365034] Merge tag 'xfs-perag-conv-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs into xfs-5.14-merge2
> [f52edf6c54d9] Merge tag 'unit-conversion-cleanups-5.14_2021-06-03' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.14-merge2
> [8b943d21d40d] Merge tag 'assorted-fixes-5.14-1_2021-06-03' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.14-merge2
> [ffc18582ed18] Merge tag 'inode-walk-cleanups-5.14_2021-06-03' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.14-merge2
> [255794c7ed7a] xfs: only reset incore inode health state flags when reclaiming an inode
> [7975e465af6b] xfs: drop IDONTCACHE on inodes when we mark them sick
> [2d53f66baffd] xfs: change the prefix of XFS_EOF_FLAGS_* to XFS_ICWALK_FLAG_
> [9492750a8b18] xfs: selectively keep sick inodes in memory
> [b26b2bf14f82] xfs: rename struct xfs_eofblocks to xfs_icwalk
> [295abff2fb94] Merge tag 'fix-inode-health-reports-5.14_2021-06-08' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.14-merge2
> [68b2c8bcdb81] Merge tag 'rename-eofblocks-5.14_2021-06-08' of https://git.kernel.org/pub/scm/linux/kernel/git/djwong/xfs-linux into xfs-5.14-merge2
> [d1015e2ebda6] Merge tag 'xfs-delay-ready-attrs-v20.1' of https://github.com/allisonhenderson/xfs_work into xfs-5.14-merge4
> [3969b4cc3aa1] xfs: refactor the inode recycling code
> [64cc4ef3af1a] xfs: separate primary inode selection criteria in xfs_iget_cache_hit
> [04d50afabd23] xfs: fix type mismatches in the inode reclaim functions
> [a331e4eeecae] xfs: print name of function causing fs shutdown instead of hex pointer
> [833b16f73994] xfs: fix log intent recovery ENOSPC shutdowns when inactivating inodes
> [2909e02fec6c] xfs: force the log offline when log intent item recovery fails
>
> Dave Chinner (43):
> [0a683794ace2] xfs: split up xfs_buf_allocate_memory
> [07b5c5add42a] xfs: use xfs_buf_alloc_pages for uncached buffers
> [c9fa563072e1] xfs: use alloc_pages_bulk_array() for buffers
> [02c511738688] xfs: merge _xfs_buf_get_pages()
> [e7d236a6fe51] xfs: move page freeing into _xfs_buf_free_pages()
> [9bbafc71919a] xfs: move xfs_perag_get/put to xfs_ag.[ch]
> [61aa005a5bd7] xfs: prepare for moving perag definitions and support to libxfs
> [07b6403a6873] xfs: move perag structure and setup to libxfs/xfs_ag.[ch]
> [f250eedcf762] xfs: make for_each_perag... a first class citizen
> [934933c3eec9] xfs: convert raw ag walks to use for_each_perag
> [6f4118fc6482] xfs: convert xfs_iwalk to use perag references
> [7f8d3b3ca6fe] xfs: convert secondary superblock walk to use perags
> [45d066211756] xfs: pass perags through to the busy extent code
> [30933120ad79] xfs: push perags through the ag reservation callouts
> [58d43a7e3263] xfs: pass perags around in fsmap data dev functions
> [be9fb17d88f0] xfs: add a perag to the btree cursor
> [fa9c3c197329] xfs: convert rmap btree cursor to using a perag
> [a81a06211fb4] xfs: convert refcount btree cursor to use perags
> [289d38d22cd8] xfs: convert allocbt cursors to use perags
> [7b13c5155182] xfs: use perag for ialloc btree cursors
> [50f02fe3338d] xfs: remove agno from btree cursor
> [4268547305c9] xfs: simplify xfs_dialloc_select_ag() return values
> [89b1f55a2951] xfs: collapse AG selection for inode allocation
> [b652afd93703] xfs: get rid of xfs_dir_ialloc()
> [309161f6603c] xfs: inode allocation can use a single perag instance
> [8237fbf53d6f] xfs: clean up and simplify xfs_dialloc()
> [f40aadb2bb64] xfs: use perag through unlink processing
> [509201163fca] xfs: remove xfs_perag_t
> [977ec4ddf0b7] xfs: don't take a spinlock unconditionally in the DIO fastpath
> [289ae7b48c2c] xfs: get rid of xb_to_gfp()
> [8bcac7448a94] xfs: merge xfs_buf_allocate_memory
> [9ba0889e2272] xfs: drop the AGI being passed to xfs_check_agi_freecount
> [90e2c1c20ac6] xfs: perag may be null in xfs_imap()
> [a6a65fef5ef8] xfs: log stripe roundoff is a property of the log
> [25f25648e57c] xfs: separate CIL commit record IO
> [9b845604a4d5] xfs: remove xfs_blkdev_issue_flush
> [e45cc747a6fd] xfs: async blkdev cache flush
> [d7693a7f4ef9] xfs: CIL checkpoint flushes caches unconditionally
> [6a5c6f5ef0a4] xfs: remove need_start_rec parameter from xlog_write()
> [feb616896031] xfs: journal IO cache flush reductions
> [e30fbb337045] xfs: Fix CIL throttle hang when CIL space used going backwards
> [742140d2a486] xfs: xfs_log_force_lsn isn't passed a LSN
> [0f4976a8b389] xfs: add iclog state trace events
>
> Geert Uytterhoeven (1):
> [18842e0a4f48] xfs: Fix 64-bit division on 32-bit in xlog_state_switch_iclogs()
>
> Jiapeng Chong (1):
> [9673261c32dc] xfs: Remove redundant assignment to busy
>
> Shaokun Zhang (2):
> [5f7fd7508620] xfs: sort variable alphabetically to avoid repeated declaration
> [9bb38aa08039] xfs: remove redundant initialization of variable error
>
>
> Code Diffstat:
>
> fs/xfs/libxfs/xfs_ag.c | 273 ++++++++-
> fs/xfs/libxfs/xfs_ag.h | 136 +++++
> fs/xfs/libxfs/xfs_ag_resv.c | 11 +-
> fs/xfs/libxfs/xfs_ag_resv.h | 15 +
> fs/xfs/libxfs/xfs_alloc.c | 111 ++--
> fs/xfs/libxfs/xfs_alloc.h | 2 +-
> fs/xfs/libxfs/xfs_alloc_btree.c | 31 +-
> fs/xfs/libxfs/xfs_alloc_btree.h | 9 +-
> fs/xfs/libxfs/xfs_attr.c | 956 +++++++++++++++++------------
> fs/xfs/libxfs/xfs_attr.h | 403 +++++++++++++
> fs/xfs/libxfs/xfs_attr_leaf.c | 5 +-
> fs/xfs/libxfs/xfs_attr_leaf.h | 2 +-
> fs/xfs/libxfs/xfs_attr_remote.c | 167 +++---
> fs/xfs/libxfs/xfs_attr_remote.h | 8 +-
> fs/xfs/libxfs/xfs_bmap.c | 3 +-
> fs/xfs/libxfs/xfs_bmap.h | 1 -
> fs/xfs/libxfs/xfs_btree.c | 15 +-
> fs/xfs/libxfs/xfs_btree.h | 10 +-
> fs/xfs/libxfs/xfs_ialloc.c | 641 ++++++++++----------
> fs/xfs/libxfs/xfs_ialloc.h | 40 +-
> fs/xfs/libxfs/xfs_ialloc_btree.c | 46 +-
> fs/xfs/libxfs/xfs_ialloc_btree.h | 13 +-
> fs/xfs/libxfs/xfs_inode_buf.c | 2 +-
> fs/xfs/libxfs/xfs_log_format.h | 3 -
> fs/xfs/libxfs/xfs_refcount.c | 122 ++--
> fs/xfs/libxfs/xfs_refcount.h | 9 +-
> fs/xfs/libxfs/xfs_refcount_btree.c | 39 +-
> fs/xfs/libxfs/xfs_refcount_btree.h | 7 +-
> fs/xfs/libxfs/xfs_rmap.c | 147 ++---
> fs/xfs/libxfs/xfs_rmap.h | 6 +-
> fs/xfs/libxfs/xfs_rmap_btree.c | 46 +-
> fs/xfs/libxfs/xfs_rmap_btree.h | 6 +-
> fs/xfs/libxfs/xfs_sb.c | 146 +----
> fs/xfs/libxfs/xfs_sb.h | 9 -
> fs/xfs/libxfs/xfs_shared.h | 20 +-
> fs/xfs/libxfs/xfs_types.c | 4 +-
> fs/xfs/libxfs/xfs_types.h | 1 +
> fs/xfs/scrub/agheader.c | 1 +
> fs/xfs/scrub/agheader_repair.c | 33 +-
> fs/xfs/scrub/alloc.c | 3 +-
> fs/xfs/scrub/bmap.c | 21 +-
> fs/xfs/scrub/common.c | 15 +-
> fs/xfs/scrub/fscounters.c | 42 +-
> fs/xfs/scrub/health.c | 2 +-
> fs/xfs/scrub/ialloc.c | 9 +-
> fs/xfs/scrub/refcount.c | 3 +-
> fs/xfs/scrub/repair.c | 14 +-
> fs/xfs/scrub/rmap.c | 3 +-
> fs/xfs/scrub/trace.c | 3 +-
> fs/xfs/xfs_attr_inactive.c | 2 +-
> fs/xfs/xfs_bio_io.c | 35 ++
> fs/xfs/xfs_bmap_util.c | 6 +-
> fs/xfs/xfs_buf.c | 311 ++++------
> fs/xfs/xfs_buf.h | 3 +-
> fs/xfs/xfs_buf_item.c | 39 +-
> fs/xfs/xfs_discard.c | 6 +-
> fs/xfs/xfs_dquot_item.c | 2 +-
> fs/xfs/xfs_extent_busy.c | 35 +-
> fs/xfs/xfs_extent_busy.h | 7 +-
> fs/xfs/xfs_file.c | 70 ++-
> fs/xfs/xfs_filestream.c | 2 +-
> fs/xfs/xfs_fsmap.c | 80 ++-
> fs/xfs/xfs_fsops.c | 10 +-
> fs/xfs/xfs_health.c | 15 +-
> fs/xfs/xfs_icache.c | 1162 ++++++++++++++++++++----------------
> fs/xfs/xfs_icache.h | 58 +-
> fs/xfs/xfs_inode.c | 234 ++++----
> fs/xfs/xfs_inode.h | 9 +-
> fs/xfs/xfs_inode_item.c | 18 +-
> fs/xfs/xfs_inode_item.h | 2 +-
> fs/xfs/xfs_ioctl.c | 41 +-
> fs/xfs/xfs_iops.c | 4 +-
> fs/xfs/xfs_iwalk.c | 84 ++-
> fs/xfs/xfs_linux.h | 2 +
> fs/xfs/xfs_log.c | 223 ++++---
> fs/xfs/xfs_log.h | 5 +-
> fs/xfs/xfs_log_cil.c | 103 +++-
> fs/xfs/xfs_log_priv.h | 38 +-
> fs/xfs/xfs_log_recover.c | 61 +-
> fs/xfs/xfs_mount.c | 136 +----
> fs/xfs/xfs_mount.h | 110 +---
> fs/xfs/xfs_qm.c | 10 +-
> fs/xfs/xfs_qm.h | 1 -
> fs/xfs/xfs_qm_syscalls.c | 54 +-
> fs/xfs/xfs_reflink.c | 13 +-
> fs/xfs/xfs_super.c | 10 +-
> fs/xfs/xfs_super.h | 1 -
> fs/xfs/xfs_symlink.c | 9 +-
> fs/xfs/xfs_trace.c | 2 +
> fs/xfs/xfs_trace.h | 115 +++-
> fs/xfs/xfs_trans.c | 6 +-
> fs/xfs/xfs_trans.h | 4 +-
> 92 files changed, 3782 insertions(+), 2970 deletions(-)
>