[GIT PULL] bcachefs fixes for 6.10-rc2

From: Kent Overstreet
Date: Thu May 30 2024 - 11:53:32 EST


Hi Linus, assorted odds and ends...

important note for users: BCH_DATA_unstriped (accounting for unstriped
data in stripe buckets) is arriving next merge window (which requires
regenerating alloc info on mount if erasure coding is enabled), and the
disk accounting rewrite (at long last!) is also in my master branch and
arriving next merge window - which requires regenerating alloc info for
everyone.

disk accounting rewrite brings per-snapshot-id accounting, per-btree
accounting, accounting for pending rebalance work, compression
type/ratio accounting.

everything should be in place to make this a smooth upgrade progress,
except for getting a progress indicator plumbed through so users aren't
left wondering "why is my mount so slow? is it hung?" which we're going
to try to do as well.

The following changes since commit d93ff5fa40b9db5f505d508336bc171f54db862e:

bcachefs: Fix race path in bch2_inode_insert() (2024-05-22 20:37:47 -0400)

are available in the Git repository at:

https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-05-30

for you to fetch changes up to 7b038b564b3e2a752d2211e7b0c3c29fd2f6e197:

bcachefs: Fix failure to return error on misaligned dio write (2024-05-29 16:40:30 -0400)

----------------------------------------------------------------
bcachefs fixes for 6.10-rc2

- two downgrade fixes
- a couple snapshot deletion and repair fixes, thanks to noradtux for
finding these and providing the image to debug them
- a couple assert fixes
- convert to folio helper, from Matthew
- some improved error messages
- bit of code reorganization (just moving things around); doing this
while things are quiet so I'm not rebasing fixes past reorgs
- don't return -EROFS on inconsistency error in recovery, this confuses
util-linux and has it retry the mount
- fix failure to return error on misaligned dio write; reported as an
issue with coreutils shred

----------------------------------------------------------------
Jeff Johnson (1):
bcachefs: add missing MODULE_DESCRIPTION()

Kent Overstreet (19):
bcachefs: Fix debug assert
bcachefs: Fix sb-downgrade validation
bcachefs: Plumb bkey into __btree_err()
bcachefs: Fix lookup_first_inode() when inode_generations are present
bcachefs: Fix locking assert
bcachefs: Refactor delete_dead_snapshots()
bcachefs: Run check_key_has_snapshot in snapshot_delete_keys()
bcachefs: Fix setting of downgrade recovery passes/errors
bcachefs: btree_gc can now handle unknown btrees
bcachefs: Better fsck error message for key version
bcachefs: split out sb-members_format.h
bcachefs: split out sb-downgrade_format.h
bcachefs: Split out disk_groups_format.h
bcachefs: Split out replicas_format.h
bcachefs: Split out journal_seq_blacklist_format.h
bcachefs: Split out sb-errors_format.h
bcachefs: Fix uninitialized var warning
bcachefs: Don't return -EROFS from mount on inconsistency error
bcachefs: Fix failure to return error on misaligned dio write

Matthew Wilcox (Oracle) (1):
bcachefs: Use copy_folio_from_iter_atomic()

fs/bcachefs/backpointers.c | 2 +-
fs/bcachefs/bcachefs.h | 44 +----
fs/bcachefs/bcachefs_format.h | 195 +------------------
fs/bcachefs/btree_gc.c | 18 +-
fs/bcachefs/btree_gc.h | 44 ++---
fs/bcachefs/btree_gc_types.h | 29 +++
fs/bcachefs/btree_io.c | 85 +++++----
fs/bcachefs/btree_key_cache.c | 10 +-
fs/bcachefs/buckets.c | 2 +-
fs/bcachefs/disk_groups_format.h | 21 ++
fs/bcachefs/ec.c | 2 +-
fs/bcachefs/fs-io-buffered.c | 6 +-
fs/bcachefs/fs-io-direct.c | 4 +-
fs/bcachefs/fs.c | 12 +-
fs/bcachefs/fsck.c | 51 ++---
fs/bcachefs/journal_seq_blacklist_format.h | 15 ++
fs/bcachefs/mean_and_variance_test.c | 1 +
fs/bcachefs/replicas_format.h | 31 +++
fs/bcachefs/sb-downgrade.c | 13 +-
fs/bcachefs/sb-downgrade_format.h | 17 ++
fs/bcachefs/sb-errors_format.h | 296 +++++++++++++++++++++++++++++
fs/bcachefs/sb-errors_types.h | 281 ---------------------------
fs/bcachefs/sb-members_format.h | 110 +++++++++++
fs/bcachefs/snapshot.c | 88 +++++----
fs/bcachefs/snapshot.h | 1 +
fs/bcachefs/super-io.c | 12 +-
fs/bcachefs/super.c | 2 +-
27 files changed, 706 insertions(+), 686 deletions(-)
create mode 100644 fs/bcachefs/btree_gc_types.h
create mode 100644 fs/bcachefs/disk_groups_format.h
create mode 100644 fs/bcachefs/journal_seq_blacklist_format.h
create mode 100644 fs/bcachefs/replicas_format.h
create mode 100644 fs/bcachefs/sb-downgrade_format.h
create mode 100644 fs/bcachefs/sb-errors_format.h
create mode 100644 fs/bcachefs/sb-members_format.h