[GIT PULL] bcachefs fixes for 6.12-rc4

From: Kent Overstreet
Date: Mon Oct 14 2024 - 21:28:07 EST


The following changes since commit 0f25eb4b60771f08fbcca878a8f7f88086d0c885:

bcachefs: Rework logged op error handling (2024-10-04 20:25:32 -0400)

are available in the Git repository at:

git://evilpiepirate.org/bcachefs.git tags/bcachefs-2024-10-14

for you to fetch changes up to 5e3b72324d32629fa013f86657308f3dbc1115e1:

bcachefs: Fix sysfs warning in fstests generic/730,731 (2024-10-14 05:43:01 -0400)

----------------------------------------------------------------
bcachefs fixes for 6.12-rc4

- New metadata version inode_has_child_snapshots
This fixes bugs with handling of unlinked inodes + snapshots, in
particular when an inode is reattached after taking a snapshot;
deleted inodes now get correctly cleaned up across snapshots.

- Disk accounting rewrite fixes
- validation fixes for when a device has been removed
- fix journal replay failing with "journal_reclaim_would_deadlock"

- Some more small fixes for erasure coding + device removal

- Assorted small syzbot fixes

----------------------------------------------------------------
Alan Huang (2):
bcachefs: Release transaction before wake up
bcachefs: Fix state lock involved deadlock

Kent Overstreet (23):
bcachefs: Fix lockdep splat in bch2_accounting_read
bcachefs: Split out check_unreachable_inodes() pass
bcachefs: reattach_inode() now correctly handles interior snapshot nodes
bcachefs: btree_iter_peek_upto() now handles BTREE_ITER_all_snapshots
bcachefs: Delete vestigal check_inode() checks
bcachefs: bcachefs_metadata_version_inode_has_child_snapshots
bcachefs: Kill bch2_propagate_key_to_snapshot_leaves()
bcachefs: bch2_inode_or_descendents_is_open()
bcachefs: Disk accounting device validation fixes
closures: Add closure_wait_event_timeout()
bcachefs: Check if stuck in journal_res_get()
bcachefs: __wait_for_freeing_inode: Switch to wait_bit_queue_entry
bcachefs: Fix bch2_have_enough_devs() for BCH_SB_MEMBER_INVALID
bcachefs: Fix invalid shift in member_to_text()
bcachefs: Fix accounting replay flags
bcachefs: Fix bkey_nocow_lock()
bcachefs: Improve check_snapshot_exists()
bcachefs: fix uaf in bch2_dio_write_done()
bcachefs: Fix missing bounds checks in bch2_alloc_read()
bcachefs: Add missing validation for bch_stripe.csum_granularity_bits
bcachefs: Fix kasan splat in new_stripe_alloc_buckets()
bcachefs: Handle race between stripe reuse, invalidate_stripe_to_dev
bcachefs: Fix sysfs warning in fstests generic/730,731

Mohammed Anees (1):
bcachefs: Fix NULL pointer dereference in bch2_opt_to_text

Piotr Zalewski (1):
bcachefs: add check for btree id against max in try read node

fs/bcachefs/alloc_background.c | 10 +
fs/bcachefs/bcachefs_format.h | 3 +-
fs/bcachefs/btree_gc.c | 15 +-
fs/bcachefs/btree_io.c | 5 +-
fs/bcachefs/btree_iter.c | 6 +-
fs/bcachefs/btree_iter.h | 8 +
fs/bcachefs/btree_node_scan.c | 3 +
fs/bcachefs/data_update.c | 1 +
fs/bcachefs/disk_accounting.c | 149 ++++++++++----
fs/bcachefs/ec.c | 94 ++++++---
fs/bcachefs/errcode.h | 3 +-
fs/bcachefs/extents.h | 10 +
fs/bcachefs/fs-io-direct.c | 3 +-
fs/bcachefs/fs.c | 102 +++++++++-
fs/bcachefs/fs.h | 9 +-
fs/bcachefs/fsck.c | 384 ++++++++++++++++++++++--------------
fs/bcachefs/fsck.h | 1 +
fs/bcachefs/inode.c | 275 ++++++++++++++++++++++----
fs/bcachefs/inode.h | 10 +
fs/bcachefs/inode_format.h | 3 +-
fs/bcachefs/journal.c | 13 ++
fs/bcachefs/opts.c | 4 +-
fs/bcachefs/recovery.c | 3 +-
fs/bcachefs/recovery_passes_types.h | 1 +
fs/bcachefs/replicas.c | 39 +++-
fs/bcachefs/sb-downgrade.c | 5 +-
fs/bcachefs/sb-errors_format.h | 6 +-
fs/bcachefs/sb-members.c | 10 +-
fs/bcachefs/snapshot.c | 129 +++---------
fs/bcachefs/snapshot.h | 3 -
fs/bcachefs/super.c | 34 +++-
include/linux/closure.h | 35 ++++
32 files changed, 976 insertions(+), 400 deletions(-)