mbox series

[GIT,PULL] bcachefs new years fixes for 6.7

Message ID o7py4ia3s75popzz7paf3c6347te6h3qms675lz3s2k5eltskl@cklacfnvxb7k (mailing list archive)
State New, archived
Headers show
Series [GIT,PULL] bcachefs new years fixes for 6.7 | expand

Pull-request

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

Message

Kent Overstreet Jan. 1, 2024, 4:57 p.m. UTC
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

Comments

pr-tracker-bot@kernel.org Jan. 3, 2024, 10:19 p.m. UTC | #1
The pull request you sent on Mon, 1 Jan 2024 11:57:04 -0500:

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

has been merged into torvalds/linux.git:
https://git.kernel.org/torvalds/c/981d04137a4b5ea95133572bdb3d888c9b515850

Thank you!
Martin Steigerwald Jan. 4, 2024, 6:13 p.m. UTC | #2
Hi Kent.

Kent Overstreet - 01.01.24, 17:57:04 CET:
> 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.

Is it required to recreate BCacheFS with updated BCacheFS tools from Git 
in order to benefit from that compatibility work or does BCacheFS 
automatically update the super block?
 
> Happy new year!

Happy New Year!

Best,
Kent Overstreet Jan. 4, 2024, 8:52 p.m. UTC | #3
On Thu, Jan 04, 2024 at 07:13:31PM +0100, Martin Steigerwald wrote:
> Hi Kent.
> 
> Kent Overstreet - 01.01.24, 17:57:04 CET:
> > 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.
> 
> Is it required to recreate BCacheFS with updated BCacheFS tools from Git 
> in order to benefit from that compatibility work or does BCacheFS 
> automatically update the super block?

Automatically updated as soon as a new version writes to it, and the old
versions just ignore the sections they don't know about.
Luna Jernberg Jan. 15, 2024, 2:25 a.m. UTC | #4
Hey!

Listening to you in Linux Unplugged #545 now:
https://jupiter.tube/w/mug8WfikZs3T5aXyTGTbCF the bcachefs part of the
show starts in around 1,5 hour in

Den mån 1 jan. 2024 kl 16:57 skrev Kent Overstreet <kent.overstreet@linux.dev>:
>
> 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
>