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>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f4be82e7-d98c-44d1-a65b-8c4302574fff@tnxip.de>
Date: Tue, 5 Aug 2025 23:19:21 +0200
From: Malte Schröder <malte.schroeder@...ip.de>
To: Kent Overstreet <kent.overstreet@...ux.dev>,
 Linus Torvalds <torvalds@...ux-foundation.org>
Cc: linux-bcachefs@...r.kernel.org, linux-fsdevel@...r.kernel.org,
 linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] bcachefs changes for 6.17

On 28.07.25 17:14, Kent Overstreet wrote:
> 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.

So, no merge yet? That really is a bummer. I was really hoping to
finally be able to run mainline Linux again on my boxes (yes, I
converted all of them to bcachefs early this year), now that pretty much
all issues I was hitting are fixed by this merge request.

I mean, at the rate Kent's tree is stabilizing right now I am actually
considering moving some productive systems over there. But those will
need to run distro kernels. So, please merge, I don't want to jump
through the hoops to run OpenZFS ...


Kind regards

Malte


> ----------------------------------------------------------------
> 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