lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <22ib5scviwwa7bqeln22w2xm3dlywc4yuactrddhmsntixnghr@wjmmbpxjvipv>
Date: Mon, 28 Jul 2025 11:14:33 -0400
From: Kent Overstreet <kent.overstreet@...ux.dev>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-bcachefs@...r.kernel.org, linux-fsdevel@...r.kernel.org, 
	linux-kernel@...r.kernel.org
Subject: [GIT PULL] bcachefs changes for 6.17

Schedule notes for users:

I've been digging through the bug tracker and polling users to see what
bugs are still outstanding, and - it's not much.

So, the experimental label is coming off in 6.18. 

As always, if you do hit a bug, please report it.

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

The following changes since commit c37495fe3531647db4ae5787a80699ae1438d7cf:

  bcachefs: Add missing snapshots_seen_add_inorder() (2025-07-24 22:56:37 -0400)

are available in the Git repository at:

  git://evilpiepirate.org/bcachefs.git tags/bcachefs-2025-07-28

for you to fetch changes up to c0d938c16b674bfe9e710579344653b703b92a49:

  bcachefs: Add missing error_throw to bch2_set_version_incompat() (2025-07-25 12:03:48 -0400)

----------------------------------------------------------------
bcachefs changes for 6.17-rc1

No noteworthy feature work: we're in hard freeze.

Lots of bugfixes. Assorted user visible changes and fixes:

- Fix a major performance bug when deleting many files: this was caused
  by the key cache caching keys that had been deleted, causing certain
  lookups in the inode triggers to scan excessively.

- The "io_read_nopromote" counter has been broken out into sub-counters;
  these can be seen with 'bcachefs fs top' on a recent bcachefs-tools.
  This helps when diagnosing why reads aren't coming from the cache.

- Congestion tracking is now a bit less aggressive (this controls when
  we decide to do a promote); this area still needs more work.

- Metadata writes are no longer throttled by writeback throttling

- Nocow writes can now be rebalanced (e.g. background_target,
  background_compression options)

- (Almost) all recovery passes now have progress indicators.

- Repair improvements: we'll now reconstruct missing inodes if we find
  contents for that inode (more than one or two keys), not just if the
  inodes btree was damaged: similarly for 'dirent to missing inode'.

- Btree node tracepoint improvements: they've been converted to more
  modern printbuf tracepoints, and include significantly more info.

- Fix in-memory accounting going out of sync with the accounting btree
  when doing accounting updates before going RW.

- BCH_MIN_NR_BUCKETS (minimum number of buckets per device) has been
  increased from 64 to 512. In the unlikely event that anyone anyone
  actually was using bcachefs on sub 128M filesystems and doesn't want
  to lose access (modern tools will format these small filesystems with
  a more appropriate bucket size), please file a report or contact me.

  (This was just a syzbot issue, so far as I know).

- CLASS()/guard() conversion: a great deal of code has been converted to
  the new __cleanup based resource handling, and away from 'goto err'
  cleanup.

----------------------------------------------------------------
Alan Huang (5):
      bcachefs: Don't memcpy more than needed
      bcachefs: Refactor trans->mem allocation
      bcachefs: Shut up clang warning
      bcachefs: Don't lock exec_update_lock
      bcachefs: Use user_backed_iter instead of iter_is_iovec

Anindya Sundar Gayen (1):
      bcachefs: remove extraneous ; after statements

George Hu (1):
      bcachefs: use union for bch_compression_opt to make encode & decode easier

Kent Overstreet (193):
      bcachefs: Fix UAF by journal write path
      bcachefs: async_objs: update iter pos after obj printed
      bcachefs: fsck: dir_loop, subvol_loop now autofix
      bcachefs: kill darray_u32_has()
      bcachefs: Reduce __bch2_btree_node_alloc() stack usage
      bcachefs: Allow CONFIG_UNICODE=m
      bcachefs: use scoped_guard() in fast_list.c
      bcachefs: DEFINE_CLASS()es for dev refcounts
      bcachefs: More errcode conversions
      bcachefs: add an unlikely() to trans_begin()
      bcachefs: Plumb trans_kmalloc ip to trans_log_msg
      bcachefs: Don't log error twice in allocator async repair
      bcachefs: bch2_trans_has_updates()
      bcachefs: Improve inode deletion
      bcachefs: Don't peek key cache unless we have a real key
      bcachefs: Evict/bypass key cache when deleting
      bcachefs: -o fix_errors may now be used without -o fsck
      bcachefs: Improved btree node tracepoints
      bcachefs: Finish error_throw tracepoints
      bcachefs: Improve inode_create behaviour on old filesystems
      bcachefs: Before removing dangling dirents, check for contents
      bcachefs: check_key_has_inode() reconstructs more aggressively
      bcachefs: bch_fs.devs_removed
      bcachefs: ptr_to_removed_device
      bcachefs: bch2_journal_entry_missing_range()
      bcachefs: Faster checking for missing journal entries
      bcachefs: Add missing bch2_log_msg_start()
      bcachefs: Print errcode when bch2_read_extent() sees error
      bcachefs: Fix error message in buffered read path
      bcachefs: Debug param for injecting btree node corruption on read
      bcachefs: device add now properly sets c->online_devs
      bcachefs: silence userspace build warning
      bcachefs: Update path flags cleanups
      bcachefs: add missing log message newline
      bcachefs: add missing includes
      bcachefs: silence userspace build warning
      bcachefs: trace_data_update_done_no_rw_devs
      bcachefs: use kvzalloc() for journal bios
      bcachefs: Improve nopromote visibility
      bcachefs: unsigned -> enum bch_trans_commit_flags
      bcachefs: __bch2_btree_node_alloc() now respects target
      bcachefs: bch2_btree_write_buffer_insert_checks()
      bcachefs: don't call get_update_rebalance_opts() on btree ptrs
      bcachefs: kill bch2_err_str() BUG_ON()
      bcachefs: bch2_read_bio_to_text(): tabstops
      bcachefs: kill __bch2_print_str()
      bcachefs: bch_log()
      bcachefs: c->loglevel
      bcachefs: Zero list_idx when deleting from async obj lists
      bcachefs: fix device add before fs started
      bcachefs: fast_list: warn if non-empty on exit
      bcachefs: bch2_journal_key_insert_take() accumulates accounting updates
      bcachefs: bch2_fs_initialize() now runs journal replay
      bcachefs: do_bch2_trans_commit_to_journal_replay handles accounting
      bcachefs: bch2_set_nr_journal_buckets_iter() always marks
      bcachefs: bch2_fs_initialize() initializes before going RW
      bcachefs: Improve bch2_read_bio_to_text()
      bcachefs: Fix replicas max options
      bcachefs: Better congestion visibilty in sysfs
      bcachefs: nopromote sub counters
      bcachefs: make congestion tracking less aggressive
      bcachefs: __bset_aux_tree_verify_ro()
      bcachefs: Add missing bch2_bkey_set_needs_rebalance to nocow write path
      bcachefs: delete useless null ptr check
      bcachefs: Also create snapshots with CAP_FOWNER
      bcachefs: Fix missing compat code in check_subvol()
      bcachefs: Fix UAF in check_dirent()
      bcachefs: Fix journal assertion
      bcachefs: Fix __bch2_fs_read_write() error path
      bcachefs: Give debugfs cached btree nodes better indentation
      bcachefs: Silence clang warning about enum types
      bcachefs: kill bkey_journal_seq()
      bcachefs: don't pass bch_ioctl_data by value
      bcachefs: better device too small error message
      bcachefs: check_i_sectors now prints paths
      bcachefs: simplify bch2_trans_do()
      bcachefs: DEFINE_GUARD(printbuf_atomic)
      bcachefs: convert super-io.c to CLASS/guards
      bcachefs: convert super.c to CLASS/guards
      bcachefs: convert acl.c to CLASS/guards
      bcachefs: convert xattr.c to CLASS/guards
      bcachefs: convert thread_with_file.c to CLASS/guards
      bcachefs: convert unit tests to CLASS/guards
      bcachefs: convert util.[ch] to CLASS/guards
      bcachefs: convert six.c to guards
      bcachefs: convert progress.c to guards
      bcachefs: convert enumerated_ref.c to guards
      bcachefs: convert opts.c to CLASS/guards
      bcachefs: convert sysfs.c to CLASS/guards
      bcachefs: convert buckets_waiting_for_journal.c to CLASS/guards
      bcachefs: convert quota.c to CLASS/guards
      bcachefs: convert sb-clean.c to CLASS/guards
      bcachefs: convert sb-downgrade.c to CLASS/guards
      bcachefs: convert sb-errors.c to CLASS/guards
      bcachefs: convert sb-members.c to CLASS/guards
      bcachefs: convert clock.c to CLASS/guards
      bcachefs: convert debug.c to CLASS/guards
      bcachefs: convert nocow_locking.c to CLASS/guards
      bcachefs: convert replicas.c to CLASS/guards
      bcachefs: convert bset.c to CLASS
      bcachefs: convert bkey.c to CLASS
      bcachefs: convert chardev.c to CLASS
      bcachefs: convert fs-ioctl.c to CLASS/guards
      bcachefs: convert disk_groups.c to guards
      bcachefs: convert checksum.c to CLASS/guards
      bcachefs: convert compress.c to guards
      bcachefs: convert rebalance.c to CLASS/guards
      bcachefs: convert migrate.c to CLASS/guards
      bcachefs: convert move.c to CLASS/guards
      bcachefs: convert movinggc.c to CLASS
      bcachefs: convert data_update.c to CLASS/guards
      bcachefs: convert reflink.c to CLASS/guards
      bcachefs: convert snapshot.c to CLASS/guards
      bcachefs: convert subvolume.c to CLASS/guards
      bcachefs: convert str_hash.c to CLASS
      bcachefs: convert recovery_passes.c to CLASS/guards
      bcachefs: convert recovery.c to CLASS/guards
      bcachefs: convert lru.c to CLASS
      bcachefs: convert extents.c to guards
      bcachefs: convert logged_ops.c to CLASS
      bcachefs: convert inode.c to CLASS
      bcachefs: convert dirent.c to CLASS
      bcachefs: convert namei.c to CLASS
      bcachefs: convert io_read.c to CLASS/guards
      bcachefs: convert io_write.c to CLASS/guards
      bcachefs: convert io_misc.c to CLASS/guards
      bcachefs: convert fsck.c to CLASS/guards
      bcachefs: convert disk_accounting.c to CLASS/guards
      bcachefs: convert buckets.c to CLASS/guards
      bcachefs: convert ec.c to CLASS/guards
      bcachefs: convert backpointers.c to CLASS/guards
      bcachefs: convert alloc_background.c to CLASS/guards
      bcachefs: convert alloc_foreground.c to CLASS/guards
      bcachefs: convert fs.c to CLASS/guards
      bcachefs: convert fs-io.c to CLASS/guards
      bcachefs: convert fs-io-pagecache.c to CLASS/guards
      bcachefs: convert fs-io-buffered.c to CLASS/guards
      bcachefs: convert fs-io-direct.c to CLASS/guards
      bcachefs: convert btree_node_scan.c to CLASS/guards
      bcachefs: convert journal.c to CLASS/guards
      bcachefs: convert journal_io.c to CLASS/guards
      bcachefs: convert journal_reclaim.c to CLASS/guards
      bcachefs: convert journal_seq_blacklist.c to CLASS/guards
      bcachefs: convert btree_cache.c to CLASS/guards
      bcachefs: convert btree_gc.c to CLASS/guards
      bcachefs: convert btree_write_buffer.c to CLASS/guards
      bcachefs: convert btree_update.c to CLASS/guards
      bcachefs: convert btree_update_interior.c to CLASS/guards
      bcachefs: convert btree_trans_commit.c to CLASS/guards
      bcachefs: convert btree_key_cache.c to CLASS/guards
      bcachefs: convert btree_io.c to CLASS/guards
      bcachefs: convert btree_iter.c to CLASS/guards
      bcachefs: convert btree_locking.c to CLASS/guards
      bcachefs: convert btree_journal_iter.c to CLASS/guards
      bcachefs: bch2_run_recovery_pass() now prints errors
      bcachefs: convert error.c to CLASS/guards
      bcachefs: Fix padding zeroout when creating casefolded dirents
      bcachefs: Don't call bch2_recovery_pass_want_ratelimit without sb_lock
      bcachefs: Tell wbt throttling not to throttle metadata writes
      bcachefs: Kill redundant write_super() when running recovery passes
      bcachefs: Add comment to journal_flush_done()
      bcachefs: Don't emit empty journal entry for accounting
      bcachefs: sysfs trigger_btree_write_buffer_flush
      closures: Improve warnings on bad put
      bcachefs: Fix unhandled key type in fiemap_fill_extent
      bcachefs: Ensure we don't return with closure on waitlist
      bcachefs: bch2_move_data() now walks btree nodes
      bcachefs: rereplicate flushes interior updates
      bcachefs: can_use_btree_node()
      bcachefs: Fix error handling in btree_iter_peek_slot
      bcachefs: fix assert in bch2_btree_path_traverse_cached()
      bcachefs: Fix allocate_dropping_locks() usage
      bcachefs: log devices we're scanning in btree node scan
      bcachefs: Fix refs to undefined fields in __bch2_alloc_v4_to_text()
      bcachefs: fix check_extent_overbig() call
      bcachefs: Convert topology repair errs to standard error codes
      bcachefs: Fix __bch2_alloc_to_v4 copy
      bcachefs: Flush btree_interior_update_work before freeing fs
      bcachefs: Only track read latency for congestion tracking
      bcachefs: Clean up btree_node_read_work() error handling
      bcachefs: Ensure pick_read_device() returns error for btree pointers
      bcachefs: btree_lost_data: mark a few more errors for silent fixing
      bcachefs: Don't allow mounting with crazy numbers of dirty journal entries
      bcachefs: Add pass_done to recovery_pass_status_to_text()
      bcachefs: Increase BCH_MIN_NR_NBUCKETS
      bcachefs: Hook up progress indicators for most recovery passes
      bcachefs: recovery_pass_will_run()
      bcachefs: journal_entry_btree_keys_to_text() is more careful
      bcachefs: dirent_to_text() now uses prt_bytes()
      bcachefs: Add missing ei_last_dirtied update
      bcachefs: snapshots: pass snapshot_table where appropriate
      bcachefs: live_child() no longer uses recursion
      bcachefs: Add missing error_throw to bch2_set_version_incompat()

Nikita Ofitserov (1):
      bcachefs: Suppress unnecessary inode_i_sectors_wrong fsck error

Youling Tang (2):
      bcachefs: Simplify bch2_bio_map()
      bcachefs: Use bio_add_folio_nofail() for unfailable operations

 fs/bcachefs/acl.c                         |  19 +-
 fs/bcachefs/alloc_background.c            | 300 +++++++---------
 fs/bcachefs/alloc_background.h            |   9 +-
 fs/bcachefs/alloc_foreground.c            | 209 +++++------
 fs/bcachefs/alloc_foreground.h            |   9 +-
 fs/bcachefs/async_objs.c                  |  29 +-
 fs/bcachefs/async_objs.h                  |   7 +-
 fs/bcachefs/async_objs_types.h            |   2 +-
 fs/bcachefs/backpointers.c                |  63 ++--
 fs/bcachefs/bcachefs.h                    |  72 ++--
 fs/bcachefs/bkey.c                        |   4 +-
 fs/bcachefs/bset.c                        |  74 ++--
 fs/bcachefs/btree_cache.c                 |  38 +-
 fs/bcachefs/btree_cache.h                 |  11 +
 fs/bcachefs/btree_gc.c                    | 122 +++----
 fs/bcachefs/btree_io.c                    | 119 ++++---
 fs/bcachefs/btree_iter.c                  | 129 ++++---
 fs/bcachefs/btree_iter.h                  |  22 +-
 fs/bcachefs/btree_journal_iter.c          |  20 +-
 fs/bcachefs/btree_key_cache.c             |  16 +-
 fs/bcachefs/btree_locking.c               |  17 +-
 fs/bcachefs/btree_node_scan.c             |  32 +-
 fs/bcachefs/btree_trans_commit.c          | 121 ++++---
 fs/bcachefs/btree_types.h                 |  22 +-
 fs/bcachefs/btree_update.c                | 171 +++++----
 fs/bcachefs/btree_update.h                |  79 +++--
 fs/bcachefs/btree_update_interior.c       | 335 +++++++++---------
 fs/bcachefs/btree_update_interior.h       |  12 +-
 fs/bcachefs/btree_write_buffer.c          |  45 ++-
 fs/bcachefs/btree_write_buffer.h          |   6 +-
 fs/bcachefs/buckets.c                     | 212 +++++------
 fs/bcachefs/buckets_waiting_for_journal.c |  30 +-
 fs/bcachefs/chardev.c                     | 120 ++-----
 fs/bcachefs/checksum.c                    |  54 ++-
 fs/bcachefs/clock.c                       |  17 +-
 fs/bcachefs/compress.c                    |  29 +-
 fs/bcachefs/compress.h                    |  36 +-
 fs/bcachefs/data_update.c                 |  33 +-
 fs/bcachefs/debug.c                       |  92 +++--
 fs/bcachefs/dirent.c                      |  42 +--
 fs/bcachefs/dirent.h                      |   4 +-
 fs/bcachefs/disk_accounting.c             | 266 +++++++-------
 fs/bcachefs/disk_accounting.h             |   9 +-
 fs/bcachefs/disk_groups.c                 |  27 +-
 fs/bcachefs/ec.c                          | 239 +++++--------
 fs/bcachefs/ec.h                          |   2 +-
 fs/bcachefs/enumerated_ref.c              |   4 +-
 fs/bcachefs/errcode.c                     |   3 +-
 fs/bcachefs/errcode.h                     |  13 +
 fs/bcachefs/error.c                       |  65 ++--
 fs/bcachefs/extents.c                     |  38 +-
 fs/bcachefs/extents.h                     |   3 +
 fs/bcachefs/fast_list.c                   |  32 +-
 fs/bcachefs/fast_list.h                   |   2 +-
 fs/bcachefs/fs-io-buffered.c              |  79 ++---
 fs/bcachefs/fs-io-direct.c                |  11 +-
 fs/bcachefs/fs-io-pagecache.c             |  55 ++-
 fs/bcachefs/fs-io.c                       | 127 ++++---
 fs/bcachefs/fs-io.h                       |  19 +-
 fs/bcachefs/fs-ioctl.c                    |  33 +-
 fs/bcachefs/fs.c                          | 192 +++++-----
 fs/bcachefs/fsck.c                        | 427 ++++++++++++----------
 fs/bcachefs/inode.c                       | 101 +++---
 fs/bcachefs/io_misc.c                     |  36 +-
 fs/bcachefs/io_read.c                     | 157 +++++---
 fs/bcachefs/io_read.h                     |  20 +-
 fs/bcachefs/io_write.c                    |  46 +--
 fs/bcachefs/journal.c                     | 253 ++++++-------
 fs/bcachefs/journal.h                     |   3 +-
 fs/bcachefs/journal_io.c                  | 248 ++++++-------
 fs/bcachefs/journal_io.h                  |   7 +
 fs/bcachefs/journal_reclaim.c             | 220 ++++++------
 fs/bcachefs/journal_seq_blacklist.c       |  56 ++-
 fs/bcachefs/journal_seq_blacklist.h       |   3 +
 fs/bcachefs/logged_ops.c                  |  14 +-
 fs/bcachefs/lru.c                         |  24 +-
 fs/bcachefs/migrate.c                     |  21 +-
 fs/bcachefs/move.c                        | 218 +++++-------
 fs/bcachefs/move.h                        |  14 +-
 fs/bcachefs/movinggc.c                    |   6 +-
 fs/bcachefs/namei.c                       |  26 +-
 fs/bcachefs/nocow_locking.c               |  10 +-
 fs/bcachefs/opts.c                        |  33 +-
 fs/bcachefs/opts.h                        |   8 +-
 fs/bcachefs/printbuf.h                    |   4 +
 fs/bcachefs/progress.c                    |   6 +-
 fs/bcachefs/progress.h                    |   3 +
 fs/bcachefs/quota.c                       |  96 ++---
 fs/bcachefs/rebalance.c                   |  57 ++-
 fs/bcachefs/recovery.c                    | 213 +++++------
 fs/bcachefs/recovery_passes.c             |  68 ++--
 fs/bcachefs/recovery_passes.h             |   9 +-
 fs/bcachefs/reflink.c                     |  63 ++--
 fs/bcachefs/replicas.c                    | 147 ++++----
 fs/bcachefs/sb-clean.c                    |  36 +-
 fs/bcachefs/sb-counters_format.h          |   6 +
 fs/bcachefs/sb-downgrade.c                |  19 +-
 fs/bcachefs/sb-errors.c                   |  45 +--
 fs/bcachefs/sb-errors_format.h            |   9 +-
 fs/bcachefs/sb-members.c                  |  48 ++-
 fs/bcachefs/sb-members.h                  |  19 +-
 fs/bcachefs/sb-members_format.h           |   2 +-
 fs/bcachefs/six.c                         |  21 +-
 fs/bcachefs/snapshot.c                    | 179 ++++------
 fs/bcachefs/snapshot.h                    |  32 +-
 fs/bcachefs/snapshot_types.h              |   2 +-
 fs/bcachefs/str_hash.c                    |  23 +-
 fs/bcachefs/str_hash.h                    |   4 +-
 fs/bcachefs/subvolume.c                   | 106 +++---
 fs/bcachefs/super-io.c                    |  81 ++---
 fs/bcachefs/super.c                       | 570 ++++++++++++++----------------
 fs/bcachefs/sysfs.c                       |  28 +-
 fs/bcachefs/tests.c                       | 198 +++++------
 fs/bcachefs/thread_with_file.c            |  52 +--
 fs/bcachefs/time_stats.c                  |   7 +-
 fs/bcachefs/trace.h                       | 152 ++------
 fs/bcachefs/util.c                        |  28 +-
 fs/bcachefs/util.h                        |  10 +-
 fs/bcachefs/xattr.c                       |  52 ++-
 lib/closure.c                             |  12 +-
 120 files changed, 3972 insertions(+), 4388 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ