[GIT PULL] bcachefs fixes for 6.12-rc2

From: Kent Overstreet
Date: Sat Oct 05 2024 - 14:35:42 EST


Several more filesystems repaired, thank you to the users who have been
providing testing. The snapshots + unlinked fixes on top of this are
posted here:

https://lore.kernel.org/linux-bcachefs/20241005182955.1588763-1-kent.overstreet@xxxxxxxxx/T/#t

The following changes since commit 2007d28ec0095c6db0a24fd8bb8fe280c65446cd:

bcachefs: rename version -> bversion for big endian builds (2024-09-29 23:55:52 -0400)

are available in the Git repository at:

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

for you to fetch changes up to 0f25eb4b60771f08fbcca878a8f7f88086d0c885:

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

----------------------------------------------------------------
bcachefs fixes for 6.12-rc2

A lot of little fixes, bigger ones include:

- bcachefs's __wait_on_freeing_inode() was broken in rc1 due to vfs
changes, now fixed along with another lost wakeup
- fragmentation LRU fixes; fsck now repairs successfully (this is the
data structure copygc uses); along with some nice simplification.
- Rework logged op error handling, so that if logged op replay errors
(due to another filesystem error) we delete the logged op instead of
going into an infinite loop)
- Various small filesystem connectivitity repair fixes

The final part of this patch series, fixing snapshots + unlinked file
handling, is now out on the list - I'm giving that part of the series
more time for user testing.

----------------------------------------------------------------
Kent Overstreet (18):
bcachefs: Fix bad shift in bch2_read_flag_list()
bcachefs: Fix return type of dirent_points_to_inode_nowarn()
bcachefs: Fix bch2_inode_is_open() check
bcachefs: Fix trans_commit disk accounting revert
bcachefs: Add missing wakeup to bch2_inode_hash_remove()
bcachefs: Fix reattach_inode()
bcachefs: Create lost+found in correct snapshot
bcachefs: bkey errors are only AUTOFIX during read
bcachefs: Make sure we print error that causes fsck to bail out
bcachefs: Mark more errors AUTOFIX
bcachefs: minor lru fsck fixes
bcachefs: Kill alloc_v4.fragmentation_lru
bcachefs: Check for directories with no backpointers
bcachefs: Check for unlinked inodes with dirents
bcachefs: Check for unlinked, non-empty dirs in check_inode()
bcachefs: Kill snapshot arg to fsck_write_inode()
bcachefs: Add warn param to subvol_get_snapshot, peek_inode
bcachefs: Rework logged op error handling

fs/bcachefs/alloc_background.c | 30 ++++--
fs/bcachefs/alloc_background_format.h | 2 +-
fs/bcachefs/btree_gc.c | 3 -
fs/bcachefs/btree_trans_commit.c | 3 +-
fs/bcachefs/error.c | 23 +++-
fs/bcachefs/error.h | 9 +-
fs/bcachefs/fs.c | 33 +++---
fs/bcachefs/fsck.c | 194 ++++++++++++++++++++++------------
fs/bcachefs/inode.c | 44 +++-----
fs/bcachefs/inode.h | 28 +++--
fs/bcachefs/io_misc.c | 63 +++++++----
fs/bcachefs/logged_ops.c | 16 +--
fs/bcachefs/logged_ops.h | 2 +-
fs/bcachefs/lru.c | 34 +++---
fs/bcachefs/move.c | 2 +-
fs/bcachefs/movinggc.c | 12 ++-
fs/bcachefs/sb-errors_format.h | 33 +++---
fs/bcachefs/subvolume.c | 16 ++-
fs/bcachefs/subvolume.h | 2 +
fs/bcachefs/util.c | 2 +-
20 files changed, 342 insertions(+), 209 deletions(-)