[GIT PULL] bcachefs fixes for 6.10-rc4

From: Kent Overstreet
Date: Wed Jun 12 2024 - 16:22:19 EST


Hi Linus, another batch of fixes for you. Nothing terribly exciting, the
usual mix of syzbot + user bug fixes.

The following changes since commit 83a7eefedc9b56fe7bfeff13b6c7356688ffa670:

Linux 6.10-rc3 (2024-06-09 14:19:43 -0700)

are available in the Git repository at:

https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-06-12

for you to fetch changes up to f2736b9c791a126ecb9cfc1aef1c7b4152b66e2d:

bcachefs: Fix rcu_read_lock() leak in drop_extra_replicas (2024-06-11 18:59:08 -0400)

----------------------------------------------------------------
bcachefs fixes for 6.10-rc4

- fix kworker explosion, due to calling submit_bio() (which can block)
from a multithreaded workqueue
- fix error handling in btree node scan
- forward compat fix: kill an old debug assert
- key cache shrinker fixes
this is a partial fix for stalls doing multithreaded creates - there
were various O(n^2) issues the key cache shrinker was hitting

https://lore.kernel.org/linux-bcachefs/fmfpgkt3dlzxhotrfmqg3j3wn5bpqiqvlc44xllncvdkimmx3i@n4okabtvhu7t/

there's more work coming here; I'm working on a patch to delete the
key cache lock, which initial testing shows to be a pretty drastic
performance improvement
- assorted syzbot fixes

----------------------------------------------------------------
Hongbo Li (1):
bcachefs: fix the display format for show-super

Kent Overstreet (16):
bcachefs: Split out btree_write_submit_wq
bcachefs: Fix incorrect error handling found_btree_node_is_readable()
bcachefs: Delete incorrect BTREE_ID_NR assertion
bcachefs: fix stack frame size in fsck.c
bcachefs: Enable automatic shrinking for rhashtables
bcachefs: increase key cache shrinker batch size
bcachefs: set sb->s_shrinker->seeks = 0
bcachefs: Fix reporting of freed objects from key cache shrinker
bcachefs: Leave a buffer in the btree key cache to avoid lock thrashing
bcachefs: Fix refcount leak in check_fix_ptrs()
bcachefs: Fix snapshot_create_lock lock ordering
bcachefs: Replace bucket_valid() asserts in bucket lookup with proper checks
bcachefs: Check for invalid bucket from bucket_gen(), gc_bucket()
bcachefs: Add missing synchronize_srcu_expedited() call when shutting down
bcachefs: Add missing bch_inode_info.ei_flags init
bcachefs: Fix rcu_read_lock() leak in drop_extra_replicas

fs/bcachefs/alloc_background.c | 22 +++-
fs/bcachefs/bcachefs.h | 3 +-
fs/bcachefs/btree_cache.c | 9 +-
fs/bcachefs/btree_gc.c | 17 ++-
fs/bcachefs/btree_io.c | 8 +-
fs/bcachefs/btree_iter.c | 11 +-
fs/bcachefs/btree_key_cache.c | 33 +++--
fs/bcachefs/btree_node_scan.c | 9 +-
fs/bcachefs/buckets.c | 293 +++++++++++++++++++++++------------------
fs/bcachefs/buckets.h | 17 ++-
fs/bcachefs/buckets_types.h | 2 +
fs/bcachefs/data_update.c | 3 +-
fs/bcachefs/ec.c | 26 +++-
fs/bcachefs/extents.c | 9 +-
fs/bcachefs/fs-ioctl.c | 17 +--
fs/bcachefs/fs.c | 3 +
fs/bcachefs/fsck.c | 3 +
fs/bcachefs/io_read.c | 37 ++++--
fs/bcachefs/io_write.c | 19 ++-
fs/bcachefs/movinggc.c | 7 +-
fs/bcachefs/super-io.c | 6 +-
fs/bcachefs/super.c | 10 +-
22 files changed, 344 insertions(+), 220 deletions(-)