[GIT PULL] bcachefs new years fixes for 6.7

From: Kent Overstreet
Date: Mon Jan 01 2024 - 11:57:21 EST


Hi Linus, some more fixes for you, and some compatibility work so that
6.7 will be able to handle the disk space accounting rewrite when it
rolls out.

Happy new year!

The following changes since commit 453f5db0619e2ad64076aab16ff5a00e0f7c53a2:

Merge tag 'trace-v6.7-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace (2023-12-30 11:37:35 -0800)

are available in the Git repository at:

https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-01-01

for you to fetch changes up to 0d72ab35a925d66b044cb62b709e53141c3f0143:

bcachefs: make RO snapshots actually RO (2024-01-01 11:47:07 -0500)

----------------------------------------------------------------
More bcachefs bugfixes for 6.7, and forwards compatibility work:

- fix for a nasty extents + snapshot interaction, reported when reflink
of a snapshotted file wouldn't complete but turned out to be a more
general bug
- fix for an invalid free in dio write path when iov vector was longer
than our inline vecotr
- fix for a buffer overflow in the nocow write path - BCH_REPLICAS_MAX
doesn't actually limit the number of pointers in an extent when
cached pointers are included
- RO snapshots are actually RO now
- And, a new superblock section to avoid future breakage when the disk
space acounting rewrite rolls out: the new superblock section
describes versions that need work to downgrade, where the work
required is a list of recovery passes and errors to silently fix.

----------------------------------------------------------------
Kent Overstreet (13):
bcachefs: Fix extents iteration + snapshots interaction
bcachefs: fix invalid free in dio write path
bcachefs: fix setting version_upgrade_complete
bcachefs: Factor out darray resize slowpath
bcachefs: Switch darray to kvmalloc()
bcachefs: DARRAY_PREALLOCATED()
bcachefs: fix buffer overflow in nocow write path
bcachefs: move BCH_SB_ERRS() to sb-errors_types.h
bcachefs: prt_bitflags_vector()
bcachefs: Add persistent identifiers for recovery passes
bcachefs: bch_sb.recovery_passes_required
bcachefs: bch_sb_field_downgrade
bcachefs: make RO snapshots actually RO

fs/bcachefs/Makefile | 2 +
fs/bcachefs/acl.c | 3 +-
fs/bcachefs/bcachefs.h | 1 +
fs/bcachefs/bcachefs_format.h | 51 ++++++---
fs/bcachefs/btree_iter.c | 35 ++++--
fs/bcachefs/darray.c | 24 ++++
fs/bcachefs/darray.h | 48 +++++---
fs/bcachefs/errcode.h | 3 +
fs/bcachefs/error.c | 3 +
fs/bcachefs/fs-io-direct.c | 13 +--
fs/bcachefs/fs-ioctl.c | 12 +-
fs/bcachefs/fs.c | 38 ++++++-
fs/bcachefs/io_write.c | 82 +++++++-------
fs/bcachefs/printbuf.c | 22 ++++
fs/bcachefs/printbuf.h | 2 +
fs/bcachefs/recovery.c | 137 +++++++++++++++++++----
fs/bcachefs/recovery.h | 3 +
fs/bcachefs/recovery_types.h | 86 ++++++++------
fs/bcachefs/sb-clean.c | 2 -
fs/bcachefs/sb-downgrade.c | 188 +++++++++++++++++++++++++++++++
fs/bcachefs/sb-downgrade.h | 10 ++
fs/bcachefs/sb-errors.c | 6 +-
fs/bcachefs/sb-errors.h | 253 +-----------------------------------------
fs/bcachefs/sb-errors_types.h | 253 ++++++++++++++++++++++++++++++++++++++++++
fs/bcachefs/subvolume.c | 18 +++
fs/bcachefs/subvolume.h | 3 +
fs/bcachefs/super-io.c | 86 +++++++++++++-
fs/bcachefs/super-io.h | 12 +-
fs/bcachefs/util.h | 1 +
fs/bcachefs/xattr.c | 3 +-
30 files changed, 977 insertions(+), 423 deletions(-)
create mode 100644 fs/bcachefs/darray.c
create mode 100644 fs/bcachefs/sb-downgrade.c
create mode 100644 fs/bcachefs/sb-downgrade.h