------------------------------------------------------------------- Sat Apr 25 22:52:45 UTC 2026 - Jan Engelhardt - Update to release 1.38.0 * The `need_discard` btree (tracking buckets pending discard) is now indexed by journal sequence number instead of device/bucket. Upgrade is automatic on mount. Downgrade to a pre-1.38 version requires offline downgrade tooling. * Added journal pipelining * Faster implementation of snapshot_read at mount time * `bcachefs format` no longer misdetects SSDs as rotational when given a partition. * The stripe repair path now correctly handles full stripes with a block on a device that has been force removed and need to be shrunk. ------------------------------------------------------------------- Mon Mar 30 11:51:16 UTC 2026 - Jan Engelhardt - Update to release 1.37.4 * bcachefs: don't reuse stripes when live data would overflow into parity - Remove 0001-bcachefs-fix-linking-error-on-i586.patch (merged) ------------------------------------------------------------------- Wed Mar 25 13:27:38 UTC 2026 - Jan Engelhardt - Update to release 1.37.3 * kmp: Zero out btree ptr mem_ptr field in bch2_journal_keys_sort() * kmp: Delete bogus BUG() in bch2_stripe_repair() * kmp: Fix max extent/btree pointer size for durability=0 replicas ------------------------------------------------------------------- Mon Mar 16 22:19:23 UTC 2026 - Jan Engelhardt - Update to release 1.37.1 * Erasure coding is now considered stable * bcachefs is now able to handle automatic recovery from devices with bad flush/FUA support * Faster recovery from unclean shutdowns ------------------------------------------------------------------- Sat Feb 7 21:14:00 UTC 2026 - Holden Fried - Update to release v1.36.1 * Interactive TUI for monitoring various filesystem internals, slowpaths and device performance, with duration and frequency tracking for various events. Helpful for diagnosing performance issues. * `encoded_extent_max` default bumped to 256k; new filesystems now initialize `BCH_SB_EXTENT_BP_SHIFT` to 16, so higher settings won't require rebuilding backpointers. * `--rotational` flag now works correctly during format * Copygc now waits until a device is less than 20% free before starting. * Improved `bcachefs reconcile status` output. * Large batch of erasure coding cleanup and hardening: better error reporting for EC reconstruct reads, fix a race between EC and data moves, and various other EC bugfixes. * Fix write buffer `move_keys_from_inc_to_flushing()` regression, which was causing occasional oopses under load for some users. * Snapshot deletion is now much faster when deleting large numbers of snapshos; we now use an eytzinger tree for the list of nodes being deleted. * Fix sporadic superblock checksum failures during device scan. ------------------------------------------------------------------- Thu Feb 5 10:40:08 UTC 2026 - Jan Engelhardt - Update to release 1.36.0 * Fix propagating the incompressible bit in the data update path: sometimes this would be lost, leading to spurious "extent with bad/missing reconcile options" errors. * "bcachefs_metadata_version_no_sb_user_data_replicas": an (incompatible) disk format upgrade feature to aid in clearing a bottleneck when the filesystem has a large (50-ish) number of drives. * Fixes for the data update path: it turns out, the data update path was dropping replicas to devices being evacuated (which are considered to have durability of 0) before the extent was sufficiently replicated on other devices. This caused data loss for a few users. ------------------------------------------------------------------- Tue Jan 13 19:52:59 UTC 2026 - Jan Engelhardt - Update to release 1.35.0 * The requirement that devices must have matched bucket sizes to be members of the same stripes has been removed. * Stripes may be reshaped (number of blocks increased or decreased), as needed; this improves EC's handling of device failures. * Significantly improved evacuate, rereplicate performance on rotating disks: we now launch one thread per device being read from (i.e. every device that shared data with the device going away); each device is read from in parallel with reads across the whole device done in sorted order. * `backpointer_scan_iter`, for improved performance for code doing backpointer -> extent walks, including but not limited to reconcile; this is quite significant on systems with metadata on rotating disk and relatively limited memory. * The bug with reconcile where btree roots wouldn't be processed has been fixed. * A few bugs with reconcile's handling of cached data have been fixed. * The reconcile tracepoints, especially `reconcile_set_pending`, now give significantly more information. * Reconcile now knows how to wait on copygc when a device it wants to write to is full, rather than (incorrectly) marking the extent as pending. * Fixed several memory reclaim recursion bugs; performance under memory pressure should be improved. * Various allocation watermark fixes; btree updates now only run with high priority watermarks when necessary. This fixes some allocator deadlocks on open bucket allocation. * 'encoded_extent_max` settings of 1MB and greater now work properly; previously, this could cause backpointer issues if compression was enabled. ------------------------------------------------------------------- Fri Jan 9 15:06:44 UTC 2026 - Jan Engelhardt - Update to release 1.34.0 * `KEY_TYPE_error` keys new include a field that indicates the reason and codepath they were created. * We now run `check_snapshots` before deleting interior snapshot nodes, after observing a bug where bad skiplist entries were created due to prior corruption of the snapshot depth field. * The compression code now always bounces the source buffer if it may have been mapped to userspace; this should solve reports of corruption with zstd. * `str_hash` (dirents and xattrs) repair now handles keys in different snapshots correctly. ------------------------------------------------------------------- Thu Dec 25 23:04:13 UTC 2025 - Jan Engelhardt - Update to release 1.33.4 * Fix a bug with interior snapshot node deletion that could manifest as fs corruption that would disappear on the next remount. * New mode for verifying the result of data compression before writing compressed data out to disk (``verify_compress``). * Reconcile no longer runs when the filesystem is mounted read only. ------------------------------------------------------------------- Tue Dec 23 17:11:23 UTC 2025 - Holden Fried - Update to release 1.33.3 * More snapshot deletion fixes, old interior snapshot nodes should finally be getting cleaned up correctly * We now run ``check_snapshots`` on every mount; there have been some bugs which result in snapshot tree corruption in the depth/skiplist fields, breaking ``snapshot_is_ancestor()``. We can't efficiently detect this kind of corruption at runtime, but ``check_snapshots`` is no more expensive than ``read_snapshots``; if we still have bugs in snapshot deletion, this will render them harmless. * Some obscure repair paths are now more robust - str_hash mismatch repair, inode reconstruction. * Btree node rewrites no longer run at ``BCH_WATERMARK_btree`` by default; this should solve some deadlocks that started happening when reconcile started moving around a lot more btree nodes. * When we get a ZSTD decompression error, the specific error code from zstd will now be reported in the error message. ------------------------------------------------------------------- Fri Dec 19 21:28:19 UTC 2025 - Holden Fried - Update to release 1.33.2 * Fix multiple bugs involving deleting interior snapshot nodes * Fix an assertion pop caused by leftover rebalance scan cookies, from pre-1.33.0 * Fix mmap-involved page cache inconsistency/corruption, users generally noticed this as files that seemed to be corrupted by the cp afterwards * Fix a topology inconsistency caused by a transaction commit merging a node we were updating a key for in the same transaction; we now have stricter topology checks * Online fsck now understands ``-o recovery_passes`` * Copygc (and elsewhere) now correctly uses the 'fragmented' counter under `dev_data_type` accounting; intricacies of compressed data accounting mean that ``buckets * bucket_size - sectors`` does not work for this, and may underflow. * New recovery pass: ``kill_i_generation_keys``. Modern filesystems do not use ``KEY_TYPE_i_generation`` for implementing NFS inode generation numbers, and old filesystems may have significant amounts of wasted space in the inodes btree from these. Must be run manually, and can be run online. * Subvolumes and snapshot trees are now viewable in debugfs, along with the per-snapshot accounting. These should be considered prototype interfaces, to give users something to look at and comment on before the real interfaces are designed. * Snapshot accounting is no longer kept in-memory; this fixes slow ``accouting_read`` on filesystems with huge numbers of snapshots. ------------------------------------------------------------------- Mon Dec 15 16:57:51 UTC 2025 - Holden Fried - Update to release 1.33.1 * Recovery passes will now be run in the background when possible * When a scheduled recovery pass and all scheduled passes that depend on it can be run online, we'll now run it in the background instead of blocking mount. This means that upgrades to 1.33 from previous versions will now happen in the background. * We now avoid blocking on memory reclaim when allocating btree node buffers; it was discovered that under memory pressure it can take > 10 seconds to satisfy a single allocation due to compaction. We'll now fall back to vmalloc much quicker.This should help with the SRCU lock hold time warnings that have still been popping up. * There's a new btree node cache statistic to track the number of vmalloc allocations; if we notice that this is now too high we may want to add a background task to allocate physically contiguous buffers to replace the vmalloc allocations (vmalloc memory is a bit slower than physically contiguous memory). * Fix a "pending incorrectly set" ERO * Fix checking for device rebalance scan cookies, this will eliminate some spurious "extent with incorrect/missing reconcile opts" errors. * Snapshot deletion fixes; when multiple leaves were being deleted simultaneously and interior nodes needed to be deleted too, the interior nodes often wouldn't get cleaned up - and in rare situations keys could get moved to the incorrect snapshot node, due to a DFS iteration bug. ------------------------------------------------------------------- Fri Dec 5 23:11:05 UTC 2025 - Holden Fried - Update to release 1.33.0 * ``bcachefs_metadata_version_reconcile``, formerly known as ``rebalance_v2``, is now available, and requires an incompatible format upgrade to enable. * Reconcile/Rebalance now handles all IO path operations (rather than just the background target & compression options), as well as metadata. * Reconcile reacts to option changes and device setting changes, immediately rereplicating degraded data or metadata. This obsoletes the commands ``data rereplicate``, ``data job drop_extra_replicas``, and others; the new commands are ``reconcile status`` and ``reconcile wait``. * The filesystem now track whether a disk is rotational or not, but this currently cannot be changed once set. * Degraded data is now always properly reported as degraded (by ``bcachefs fs usage`)`. ------------------------------------------------------------------- Sun Nov 16 19:36:29 UTC 2025 - Holden Fried - Update to release 1.32.1 * Update bcachefs sources to 99a43760af01 bcachefs: ret_fsck_err() * Update bcachefs sources to f4a2c8cad65c bcachefs: print NO_KEYS in snapshot_to_text() ------------------------------------------------------------------- Sun Nov 9 17:39:05 UTC 2025 - Holden Fried - Update to release 1.32.0 * bcachefs: vendorize bio_iov_iter_get_pages() * bcachefs: BCH_ERR_unaligned_io * bcachefs: Don't bail out of check_inode() if check_has_case_sensitive() fails * udev rules: Add per-member links in /dev/disk/by-uuid * A number of documentation updates including: * Added Documentation about how to add Device Labels * Clarified how to remove offline devices * Added data scrub documentation * Added set-fs-option as an alternative for sysfs option * Added casefold_disabled option Documentation, not sure if able to be set other than on mount * bcachefs: don't BUG() if using the btree before initialized * bcachefs: Restrict output size of bch2_snapshot_delete_nodes_to_text() * cmd_fs_top: Fix replication display for erasure coded data ------------------------------------------------------------------- Wed Oct 29 16:49:54 UTC 2025 - Jan Engelhardt - Update to release 1.31.12 * kmp: don't log duplicate errors in read path * format: Don't format with a version higher than supported by tools * kmp: track whether new btree nodes are roots ------------------------------------------------------------------- Fri Oct 17 12:12:59 UTC 2025 - Jan Engelhardt - Update to release 1.31.11 * No changelog was provided ------------------------------------------------------------------- Tue Oct 7 10:32:27 UTC 2025 - Jan Engelhardt - Update to release 1.31.7 * mount: for when a passphrase is needed, try systemd-ask-password when stdin is /dev/null * mount: pass --keyname and --accept-cached to systemd-ask-password * bcachefs: Fix double-free of journal_keys key * bcachefs: Fix promote path nocow deadlock * bcachefs: Add time_stats for btree write buffer flush ------------------------------------------------------------------- Tue Sep 23 13:09:54 UTC 2025 - Jan Engelhardt - Update to release 1.31.1 * Enforce a soft minimum limit of 64k for bucket size * Add v2 ioctls that return error strings * Commands called with no arguments now print usage * scrub: Return code now indicates corrected/uncorrected errors ------------------------------------------------------------------- Fri Aug 29 13:13:02 UTC 2025 - Petr Vorel - Update to release 1.25.3 * New commands: `bcachefs image create` and `bcachefs image update` ------------------------------------------------------------------- Thu May 29 21:41:18 UTC 2025 - Jan Engelhardt - Update to release 1.25.2 [boo#1243231] * No changelog was provided ------------------------------------------------------------------- Thu Feb 6 09:36:16 UTC 2025 - Petr Vorel - Update to 1.20.0: * bcachefs fs top - show runtime performance information * various fixes ------------------------------------------------------------------- Wed Dec 18 18:33:29 UTC 2024 - Richard Rahl - update to 1.13.0: * posix_to_bcachefs: fix missing copy_xattrs() error checking * Change lingering set-option texts to set-fs-option * change setattr to set-file-option in docs/usage - update to 1.11.1: * bch_bindgen: Remove memoffset dep * cmd_list: open with noexcl * fuse: graceful shutdown when startup fails ------------------------------------------------------------------- Sun Aug 18 23:46:46 UTC 2024 - Jan Engelhardt - Update to release 1.11.0 * mount: Fix UAF in option string handling * mount: Support asking for password via systemd-ask-password - Fix a crash in mkfs.bcachefs by disabling LTO. ------------------------------------------------------------------- Mon Jul 22 09:06:43 UTC 2024 - David Disseldorp - Update to release v1.9.4 * No longer logging by default * Fix undefined behavour ------------------------------------------------------------------- Fri Jul 12 19:00:39 UTC 2024 - David Disseldorp - Update to release v1.9.3 * Fix 32-bit builds further ------------------------------------------------------------------- Tue Jul 2 11:11:19 UTC 2024 - David Disseldorp - Update to release v1.9.2 * Fix fsck: Revert OPT_MOUNT change for read_only and make it OPT_HIDDEN - Remove upstreamed patch * 0001-key-use-c_long-type-for-keyctl_search-helper-fn.patch ------------------------------------------------------------------- Thu Jun 20 00:45:20 UTC 2024 - David Disseldorp - Update to release v1.9.1 * disk_accounting_v2: report on compression type/ratio, btree usage, and pending rebalance work. - Fix 32-bit builds * add 0001-key-use-c_long-type-for-keyctl_search-helper-fn.patch ------------------------------------------------------------------- Wed Jun 19 19:55:02 UTC 2024 - Joshua Smith - Update to release v1.9.1: * improve editorconfig to include sh scripts * fix: remove newlines from passphrase * fix: search for key in all keyrings - Updates from release v1.9.0: * add BCACHEFS_BLOCK_SCAN environment variable for users that * add BCACHEFS_KERNEL_ONLY environment variable for test bcachefs, utilize it. Otherwise, resort to traversing block devices and checking for bcachefs super blocks. environments * Handle mount with FS with 1 device have a broken blkid which renders the udev db as incomplete * manpage: incorrect "delete" to "snapshot" * mount: If the udev database contains information about * mount: Make udev_bcachefs_info more idiomatic * fix typo that causes encrypted drives to become stuck in a busy loop * check_for_key before ask_for_passphrase -- check if there is already a key in the keyring available before trying to get the key from some more involved means ------------------------------------------------------------------- Thu Apr 18 00:07:11 UTC 2024 - David Disseldorp - Update to release v1.7.0 * New on disk forat feature - per member 64-bit bitmap of regions with btree nodes, to accelerate recovering by scanning for btree nodes. * mount: canonicalize device path for single device node * Topology repair now uses nodes found by scanning to fill holes * mount: Handle multi-device with 1 device node ------------------------------------------------------------------- Mon Mar 4 01:54:50 UTC 2024 - David Disseldorp - Update to release v1.6.4 * fix build on powerpc * drop upstream rust-use-libc-Ioctl-type-for-ioctl-request-argument.patch ------------------------------------------------------------------- Thu Feb 22 06:23:25 UTC 2024 - David Disseldorp - Fix 32-bit builds [boo#1220175] * add rust-use-libc-Ioctl-type-for-ioctl-request-argument.patch ------------------------------------------------------------------- Wed Feb 21 04:55:00 UTC 2024 - David Disseldorp - Update to release v1.6.3 * use the kernel fsck implementation if the kernel version is a better match for the filesystem on disk than the -tools version * fix building with old gcc * fix big endian build * collect kernel fsck return code * various other fixes ------------------------------------------------------------------- Mon Jan 29 06:55:58 UTC 2024 - David Disseldorp - Build with rust functionality enabled [boo#1219158] * Switch to upstream vendored source tarball * Validate upstream source signature ------------------------------------------------------------------- Sat Jan 27 09:49:49 UTC 2024 - Jan Engelhardt - Rectify paths in systemd unit files [boo#1218808] ------------------------------------------------------------------- Fri Jan 19 01:54:34 UTC 2024 - Joshua Smith - Delete use_libexec_not_lib.patch (merged) - Update to release v1.4.1 * fix cmd_fsck, "bad mount option read-only" * now open block devices with O_EXCL ------------------------------------------------------------------- Tue Jan 9 03:46:53 UTC 2024 - Joshua Smith - Add use_libexec_not_lib.patch - Update to v1.4.0: * bugfix release * Split brain detection * BCH_IOCTL_OFFLINE_FSCK, and numerous other features and bugfixes. ------------------------------------------------------------------- Sun Dec 3 02:10:44 UTC 2023 - Joshua Smith - Update to v1.3.5: * Update from latest kernel bcachefs sources, pulling in fixes for deleted_inodes btree in particular * cmd_version now works properly * fixes for cmd_format, pick the same bucket size for all devices for the sake of erasure coding * rebalance_work point release * Fix race in closure_sync() * Updated bcachefs sources because bcachefs_metadata_version_deleted_inodes * Snapshot depth, skiplist fields * Updated bcachefs sources because bcachefs_metadata_version_major_minor * Fix quotas + snapshots * Rip out code for storing backpointers in alloc keys * Fragmentation LRU * Rework LRU btree ------------------------------------------------------------------- Tue May 30 08:19:24 UTC 2023 - Jan Engelhardt - Initial package (version 24) for build.opensuse.org