linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kent Overstreet <kent.overstreet@linux.dev>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-bcachefs@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	 linux-kernel@vger.kernel.org
Subject: [GIT PULL] bachefs fixes for 6.9-rc1
Date: Tue, 19 Mar 2024 18:11:15 -0400	[thread overview]
Message-ID: <qhecenhgh5bnkjllimyvmqc6cv5bv4vposvh5hqtjjm7hx3q4u@r4gwjp6wl2k2> (raw)

Hi Linus, small batch of bcachefs fixes for you.

Going to have a larger pull for you soon with some new repair code -
some users got hit bad with the failure to downgrade bug (the fix for
which is still not in 6.7) - that caused the splitbrain detection to
attempt to kick out every device from the filesystem, and some users
attempted to run in very_degraded mode got things very borked.

For users:
 - there's a no_splitbrain_check option which runs the splitbrain checks
   in dry run mode, that should suffice to get most people going
 - if your fs is very borked, 'scan entire device for btree nodes and
   reconstruct' is almost done; it looks like that will be a pretty
   bulletproof way to reconstruct.

Some poeple may have their filesystems unavailable for a bit but I'm
trying to make sure no one looses data, and no one should be forced to
migrate either, we should always get back to a working functional rw fs.

Cheers,
Kent

The following changes since commit be28368b2ccb328b207c9f66c35bb088d91e6a03:

  bcachefs: time_stats: shrink time_stat_buffer for better alignment (2024-03-13 21:38:03 -0400)

are available in the Git repository at:

  https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-03-19

for you to fetch changes up to 2e92d26b25432ec3399cb517beb0a79a745ec60f:

  bcachefs: Fix lost wakeup on journal shutdown (2024-03-18 23:35:42 -0400)

----------------------------------------------------------------
bcachefs fixes for 6.9-rc1

Assorted bugfixes.

Most are fixes for simple assertion pops; the most significant fix is
for a deadlock in recovery when we have to rewrite large numbers of
btree nodes to fix errors. This was incorrectly running out of the same
workqueue as the core interior btree update path - we now give it its
own single threaded workqueue.

This was visible to users as "bch2_btree_update_start(): error:
BCH_ERR_journal_reclaim_would_deadlock" - and then recovery hanging.

----------------------------------------------------------------
Kent Overstreet (17):
      bcachefs: Change "accounting overran journal reservation" to a warning
      bcachefs: Fix check_key_has_snapshot() call
      bcachefs: Fix spurious -BCH_ERR_transaction_restart_nested
      bcachefs: Avoid extent entry type assertions in .invalid()
      bcachefs: Fix locking in bch2_alloc_write_key()
      bcachefs: Split out btree_node_rewrite_worker
      bcachefs: Improve sysfs internal/btree_updates
      bcachefs: Fix nested transaction restart handling in bch2_bucket_gens_init()
      bcachefs: bch2_snapshot_is_ancestor() now safe to call in early recovery
      bcachefs: fix for building in userspace
      bcachefs: Don't corrupt journal keys gap buffer when dropping alloc info
      bcachefs: Fix lost transaction restart error
      bcachefs: Improve bch2_fatal_error()
      bcachefs: Run check_topology() first
      bcachefs: ratelimit errors from async_btree_node_rewrite
      bcachefs; Fix deadlock in bch2_btree_update_start()
      bcachefs: Fix lost wakeup on journal shutdown

 fs/bcachefs/alloc_background.c      | 15 +++++++------
 fs/bcachefs/alloc_foreground.c      | 10 +++++----
 fs/bcachefs/bcachefs.h              |  2 ++
 fs/bcachefs/btree_gc.c              |  2 +-
 fs/bcachefs/btree_io.c              | 12 +++++-----
 fs/bcachefs/btree_key_cache.c       |  2 +-
 fs/bcachefs/btree_update_interior.c | 44 ++++++++++++++++++++++++-------------
 fs/bcachefs/btree_update_interior.h |  1 +
 fs/bcachefs/btree_write_buffer.c    |  2 +-
 fs/bcachefs/buckets.c               |  6 ++---
 fs/bcachefs/debug.c                 |  2 +-
 fs/bcachefs/ec.c                    |  6 ++---
 fs/bcachefs/error.h                 |  4 ++--
 fs/bcachefs/extents.h               |  6 ++---
 fs/bcachefs/fs.c                    |  3 ++-
 fs/bcachefs/fsck.c                  | 33 ++++++++++++++++++++--------
 fs/bcachefs/journal.c               | 12 +++++-----
 fs/bcachefs/journal_io.c            | 15 ++++++-------
 fs/bcachefs/logged_ops.c            |  4 ++--
 fs/bcachefs/movinggc.c              |  3 +--
 fs/bcachefs/recovery.c              |  6 ++++-
 fs/bcachefs/recovery_types.h        |  2 +-
 fs/bcachefs/snapshot.c              | 32 +++++++++++++++------------
 fs/bcachefs/super-io.c              |  8 +++----
 fs/bcachefs/super.c                 | 33 ++++++++++++++--------------
 fs/bcachefs/util.h                  |  3 +++
 26 files changed, 157 insertions(+), 111 deletions(-)

             reply	other threads:[~2024-03-19 22:11 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-19 22:11 Kent Overstreet [this message]
2024-03-20  0:32 ` [GIT PULL] bachefs fixes for 6.9-rc1 pr-tracker-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=qhecenhgh5bnkjllimyvmqc6cv5bv4vposvh5hqtjjm7hx3q4u@r4gwjp6wl2k2 \
    --to=kent.overstreet@linux.dev \
    --cc=linux-bcachefs@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).