mbox series

[GIT,PULL] bcachefs fixes for rc4

Message ID woux55cy6ms6exoa43hg745ftfo6msc3bsnjge3te2c4pvdzmf@57wrbdc5pp7s (mailing list archive)
State New
Headers show
Series [GIT,PULL] bcachefs fixes for rc4 | expand

Pull-request

https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-04-10

Message

Kent Overstreet April 11, 2024, 2:54 a.m. UTC
Hi Linus, another batch of fixes for you...

And on the subject of the rc3 announcement - yes, let's please dial back
the excitement _just_ a bit, it's seemed a bit unhinged at times;
bcachefs is still marked as experimental for a reason.

You shouldn't be running bcachefs just yet if you'll be sad if things
are offline for a bit (where a bit has been for a few people a week or
two); IOW, this is still very much for early adopters and people who are
willing and able to help test and debug.

Worst case scenario you're not going to lose data, as long as you can be
patient, but I'm still debugging issues where we get stuck in recovery
(= filesystem offline).

That said - things are coming together quite nicely. Will have more to
say at LSF...

----------------------------------------------------------------

The following changes since commit 09d4c2acbf4c864fef0f520bbcba256c9a19102e:

  bcachefs: reconstruct_inode() (2024-04-03 14:46:51 -0400)

are available in the Git repository at:

  https://evilpiepirate.org/git/bcachefs.git tags/bcachefs-2024-04-10

for you to fetch changes up to 1189bdda6c991cbf9342d84410042dd5f3a792e0:

  bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter() (2024-04-10 22:28:36 -0400)

----------------------------------------------------------------
bcachefs fixes for v6.9-rc4

Notable user impacting bugs

- On multi device filesystems, recovery was looping in
  btree_trans_too_many_iters(). This checks if a transaction has touched
  too many btree paths (because of iteration over many keys), and isuses
  a restart to drop unneeded paths. But it's now possible for some paths
  to exceed the previous limit without iteration in the interior btree
  update path, since the transaction commit will do alloc updates for
  every old and new btree node, and during journal replay we don't use
  the btree write buffer for locking reasons and thus those updates use
  btree paths when they wouldn't normally.

- Fix a corner case in rebalance when moving extents on a durability=0
  device. This wouldn't be hit when a device was formatted with
  durability=0 since in that case we'll only use it as a write through
  cache (only cached extents will live on it), but durability can now be
  changed on an existing device.

- bch2_get_acl() could rarely forget to handle a transaction restart;
  this manifested as the occasional missing acl that came back after
  dropping caches.

- Fix a major performance regression on high iops multithreaded write
  workloads (only since 6.9-rc1); a previous fix for a deadlock in the
  interior btree update path to check the journal watermark introduced a
  dependency on the state of btree write buffer flushing that we didn't
  want.

- Assorted other repair paths and recovery fixes.

----------------------------------------------------------------
Bagas Sanjaya (2):
      Documentation: filesystems: Add bcachefs toctree
      MAINTAINERS: Add entry for bcachefs documentation

Dan Carpenter (1):
      bcachefs: fix ! vs ~ typo in __clear_bit_le64()

Hongbo Li (1):
      bcachefs: fix the count of nr_freed_pcpu after changing bc->freed_nonpcpu list

Kent Overstreet (19):
      bcachefs: Make snapshot_is_ancestor() safe
      bcachefs: Bump limit in btree_trans_too_many_iters()
      bcachefs: Move btree_updates to debugfs
      bcachefs: Further improve btree_update_to_text()
      bcachefs: Print shutdown journal sequence number
      bcachefs: Fix rebalance from durability=0 device
      bcachefs: fix rand_delete unit test
      bcachefs: Fix BCH_IOCTL_FSCK_OFFLINE for encrypted filesystems
      bcachefs: Disable errors=panic for BCH_IOCTL_FSCK_OFFLINE
      bcachefs: JOURNAL_SPACE_LOW
      bcachefs: Fix gap buffer bug in bch2_journal_key_insert_take()
      bcachefs: fix bch2_get_acl() transaction restart handling
      bcachefs: fix eytzinger0_find_gt()
      bcachefs: Fix check_topology() when using node scan
      bcachefs: Don't scan for btree nodes when we can reconstruct
      bcachefs: btree_node_scan: Respect member.data_allowed
      bcachefs: Fix a race in btree_update_nodes_written()
      bcachefs: Kill read lock dropping in bch2_btree_node_lock_write_nofail()
      bcachefs: Fix __bch2_btree_and_journal_iter_init_node_iter()

Thomas Bertschinger (1):
      bcachefs: create debugfs dir for each btree

Thorsten Blum (1):
      bcachefs: Rename struct field swap to prevent macro naming collision

 Documentation/filesystems/bcachefs/index.rst |  11 +++
 Documentation/filesystems/index.rst          |   1 +
 MAINTAINERS                                  |   1 +
 fs/bcachefs/acl.c                            |  30 +++----
 fs/bcachefs/bcachefs_format.h                |  14 +++
 fs/bcachefs/btree_gc.c                       |  13 ++-
 fs/bcachefs/btree_iter.h                     |   2 +-
 fs/bcachefs/btree_journal_iter.c             |  67 ++++++++++----
 fs/bcachefs/btree_key_cache.c                |   4 +-
 fs/bcachefs/btree_locking.c                  |  28 +-----
 fs/bcachefs/btree_node_scan.c                |  11 ++-
 fs/bcachefs/btree_types.h                    |  14 +++
 fs/bcachefs/btree_update_interior.c          | 128 +++++++++++++--------------
 fs/bcachefs/btree_update_interior.h          |   3 +-
 fs/bcachefs/chardev.c                        |  98 +++++++++++---------
 fs/bcachefs/data_update.c                    |  17 +++-
 fs/bcachefs/debug.c                          |  75 ++++++++++++----
 fs/bcachefs/eytzinger.c                      |   8 +-
 fs/bcachefs/eytzinger.h                      |  26 ++++--
 fs/bcachefs/journal_reclaim.c                |   2 +
 fs/bcachefs/journal_types.h                  |   1 +
 fs/bcachefs/recovery.c                       |  14 ---
 fs/bcachefs/snapshot.c                       |  19 ++--
 fs/bcachefs/super.c                          |   5 ++
 fs/bcachefs/sysfs.c                          |   6 --
 fs/bcachefs/tests.c                          |   2 +-
 fs/bcachefs/util.h                           |  10 ++-
 27 files changed, 372 insertions(+), 238 deletions(-)
 create mode 100644 Documentation/filesystems/bcachefs/index.rst

Comments

pr-tracker-bot@kernel.org April 11, 2024, 7:09 p.m. UTC | #1
The pull request you sent on Wed, 10 Apr 2024 22:54:27 -0400:

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

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

Thank you!