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: <cover.1764293730.git.dsterba@suse.com>
Date: Fri, 28 Nov 2025 02:43:04 +0100
From: David Sterba <dsterba@...e.com>
To: torvalds@...ux-foundation.org
Cc: David Sterba <dsterba@...e.com>,
	linux-btrfs@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: [GIT PULL] Btrfs updates for 6.19

Hi,

please pull the following branch with btrfs updates. Thanks.

Features:

- shutdown ioctl support (needs CONFIG_BTRFS_EXPERIMENTAL for now)
  - set filesystem state as being shut down (also named going down in
    other filesystems), where all active operations return EIO and this
    cannot be changed until unmount
  - pending operations are attempted to be finished but error messages
    may still show up depending on where exactly the shutdown happened

- scrub (and device replace) vs suspend/hibernate
  - a running scrub will prevent suspend, which can be annoying as
    suspend is an immediate request and scrub is not critical
  - filesystem freezing before suspend was not sufficient as the problem
    was in process freezing
  - behaviour change: on suspend scrub and device replace are cancelled,
    where scrub can record the last state and continue from there; the
    device replace has to be restarted from the beginning

- zone stats exported in sysfs, from the perspective of the filesystem
  this includes active, reclaimable, relocation etc zones

Performance:

- improvements when processing space reservation tickets by optimizing
  locking and shrinking critical sections, cumulative improvements in
  lockstat numbers show +15%

Notable fixes:

- use vmalloc fallback when allocating bios as high order allocations
  can happen with wide checksums (like sha256)

- scrub will always track the last position of progress so it's not
  starting from zero after an error

Core:

- under experimental config, checksum calculations are offloaded to
  process context, simplifies locking and allows to remove compression
  write worker kthread(s)
  - speed improvement in direct IO throughput with buffered IO fallback
    is +15% when not offloaded but this is more related to internal
    crypto subsystem improvements
  - this will be probably default in the future removing the sysfs
    tunable

- (experimental) block size > page size updates
  - support more operations when not using large folios (encoded
    read/write and send)
  - raid56

- more preparations for fscrypt support

Other:

- more conversions to auto-cleaned variables

- parameter cleanups and removals

- extended warning fixes

- improved printing of structured values like keys

- lots of other cleanups and refactoring

----------------------------------------------------------------
The following changes since commit ac3fd01e4c1efce8f2c054cdeb2ddd2fc0fb150d:

  Linux 6.18-rc7 (2025-11-23 14:53:16 -0800)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux.git tags/for-6.19-tag

for you to fetch changes up to 9e0e6577b3e5e5cf7c1acd178eb648e8f830ba17:

  btrfs: remove unnecessary inode key in btrfs_log_all_parents() (2025-11-25 01:53:33 +0100)

----------------------------------------------------------------
Andy Shevchenko (1):
      btrfs: replace const_ilog2() with ilog2()

Baolin Liu (1):
      btrfs: simplify list initialization in btrfs_compr_pool_scan()

Boris Burkov (2):
      btrfs: ignore ENOMEM from alloc_bitmap()
      btrfs: fix racy bitfield write in btrfs_clear_space_info_full()

David Sterba (6):
      btrfs: print-tree: use string format for key names
      btrfs: fix trivial -Wshadow warnings
      btrfs: subpage: rename macro variables to avoid shadowing
      btrfs: move and rename CSUM_FMT definition
      btrfs: make a few more ASSERTs verbose
      btrfs: remaining BTRFS_PATH_AUTO_FREE conversions

Filipe Manana (77):
      btrfs: use single return value variable in btrfs_relocate_block_group()
      btrfs: use end_pos variable where needed in btrfs_dirty_folio()
      btrfs: truncate ordered extent when skipping writeback past i_size
      btrfs: use variable for end offset in extent_writepage_io()
      btrfs: split assertion into two in extent_writepage_io()
      btrfs: add unlikely to unexpected error case in extent_writepages()
      btrfs: consistently round up or down i_size in btrfs_truncate()
      btrfs: avoid multiple i_size rounding in btrfs_truncate()
      btrfs: avoid repeated computations in btrfs_mark_ordered_io_finished()
      btrfs: remove fs_info argument from btrfs_try_granting_tickets()
      btrfs: remove fs_info argument from priority_reclaim_data_space()
      btrfs: remove fs_info argument from priority_reclaim_metadata_space()
      btrfs: remove fs_info argument from maybe_fail_all_tickets()
      btrfs: remove fs_info argument from calc_available_free_space()
      btrfs: remove fs_info argument from btrfs_can_overcommit()
      btrfs: remove fs_info argument from btrfs_dump_space_info()
      btrfs: remove fs_info argument from shrink_delalloc() and flush_space()
      btrfs: remove fs_info argument from btrfs_calc_reclaim_metadata_size()
      btrfs: remove fs_info argument from need_preemptive_reclaim()
      btrfs: remove fs_info argument from steal_from_global_rsv()
      btrfs: remove fs_info argument from handle_reserve_ticket()
      btrfs: remove fs_info argument from maybe_clamp_preempt()
      btrfs: fix parameter documentation for btrfs_reserve_data_bytes()
      btrfs: remove fs_info argument from __reserve_bytes()
      btrfs: remove fs_info argument from btrfs_reserve_metadata_bytes()
      btrfs: remove fs_info argument from btrfs_sysfs_add_space_info_type()
      btrfs: remove fs_info argument from btrfs_zoned_activate_one_bg()
      btrfs: add macros to facilitate printing of keys
      btrfs: use the key format macros when printing keys
      btrfs: remove pointless data_end assignment in btrfs_extent_item()
      btrfs: return real error when failing tickets in maybe_fail_all_tickets()
      btrfs: avoid recomputing used space in btrfs_try_granting_tickets()
      btrfs: make btrfs_can_overcommit() return bool instead of int
      btrfs: avoid used space computation when trying to grant tickets
      btrfs: avoid used space computation when reserving space
      btrfs: inline btrfs_space_info_used()
      btrfs: bail out earlier from need_preemptive_reclaim() if we have tickets
      btrfs: increment loop count outside critical section during metadata reclaim
      btrfs: shorten critical section in btrfs_preempt_reclaim_metadata_space()
      btrfs: avoid unnecessary reclaim calculation in priority_reclaim_metadata_space()
      btrfs: assert space_info is locked in steal_from_global_rsv()
      btrfs: assign booleans to global reserve's full field
      btrfs: process ticket outside global reserve critical section
      btrfs: remove double underscore prefix from __reserve_bytes()
      btrfs: reduce space_info critical section in btrfs_chunk_alloc()
      btrfs: reduce block group critical section in btrfs_free_reserved_bytes()
      btrfs: reduce block group critical section in btrfs_add_reserved_bytes()
      btrfs: reduce block group critical section in do_trimming()
      btrfs: reduce block group critical section in pin_down_extent()
      btrfs: use local variable for space_info in pin_down_extent()
      btrfs: remove 'reserved' argument from btrfs_pin_extent()
      btrfs: change 'reserved' argument from pin_down_extent() to bool
      btrfs: reduce block group critical section in unpin_extent_range()
      btrfs: remove pointless label and goto from unpin_extent_range()
      btrfs: add data_race() in btrfs_account_ro_block_groups_free_space()
      btrfs: move ticket wakeup and finalization to remove_ticket()
      btrfs: avoid space_info locking when checking if tickets are served
      btrfs: annotate as unlikely fs aborted checks in space flushing code
      btrfs: move struct reserve_ticket definition to space-info.c
      btrfs: fix leaf leak in an error path in btrfs_del_items()
      btrfs: remove pointless return value update in btrfs_del_items()
      btrfs: add unlikely to critical error in btrfs_extend_item()
      btrfs: always use left leaf variable in __push_leaf_right()
      btrfs: remove duplicated leaf dirty status clearing in __push_leaf_right()
      btrfs: always use right leaf variable in __push_leaf_left()
      btrfs: abort transaction on item count overflow in __push_leaf_left()
      btrfs: update check_skip variable after unlocking current node
      btrfs: use bool type for btrfs_path members used as booleans
      btrfs: use booleans for delalloc arguments and struct find_free_extent_ctl
      btrfs: place all boolean fields together in struct find_free_extent_ctl
      btrfs: use test_and_set_bit() in btrfs_delayed_delete_inode_ref()
      btrfs: remove root argument from btrfs_del_dir_entries_in_log()
      btrfs: reduce arguments to btrfs_del_inode_ref_in_log()
      btrfs: send: add unlikely to all unexpected overflow checks
      btrfs: send: do not allocate memory for xattr data when checking it exists
      btrfs: remove redundant zero/NULL initializations in btrfs_alloc_root()
      btrfs: remove unnecessary inode key in btrfs_log_all_parents()

Gladyshev Ilya (1):
      btrfs: don't generate any code from ASSERT() in release builds

Johannes Thumshirn (1):
      btrfs: zoned: show statistics for zoned filesystems

Josef Bacik (3):
      btrfs: add orig_logical to btrfs_bio for encryption
      btrfs: don't rewrite ret from inode_permission
      btrfs: don't search back for dir inode item in INO_LOOKUP_USER

Mehdi Ben Hadj Khelifa (1):
      btrfs: refactor allocation size calculation in alloc_btrfs_io_context()

Miquel Sabaté Solà (5):
      btrfs: fix double free of qgroup record after failure to add delayed ref head
      btrfs: declare free_ipath() via DEFINE_FREE()
      btrfs: define the AUTO_KFREE/AUTO_KVFREE helper macros
      btrfs: apply the AUTO_K(V)FREE macros throughout the code
      btrfs: add ASSERTs on prealloc in qgroup functions

Omar Sandoval (1):
      btrfs: disable various operations on encrypted inodes

Qu Wenruo (38):
      btrfs: remove unnecessary NULL fs_info check from find_lock_delalloc_range()
      btrfs: introduce a new shutdown state
      btrfs: implement shutdown ioctl
      btrfs: implement remove_bdev and shutdown super operation callbacks
      btrfs: subpage: simplify the PAGECACHE_TAG_TOWRITE handling
      btrfs: scrub: add cancel/pause/removed bg checks for raid56 parity stripes
      btrfs: scrub: cancel the run if the process or fs is being frozen
      btrfs: scrub: cancel the run if there is a pending signal
      btrfs: replace BTRFS_MAX_BIO_SECTORS with BIO_MAX_VECS
      btrfs: headers cleanup to remove unnecessary local includes
      btrfs: remove btrfs_bio::fs_info by extracting it from btrfs_bio::inode
      btrfs: make sure all btrfs_bio::end_io are called in task context
      btrfs: remove btrfs_fs_info::compressed_write_workers
      btrfs: relax btrfs_inode::ordered_tree_lock IRQ locking context
      btrfs: introduce btrfs_bio::async_csum
      btrfs: use kvcalloc for btrfs_bio::csum allocation
      btrfs: make sure extent and csum paths are always released in scrub_raid56_parity_stripe()
      btrfs: scrub: factor out parity scrub code into a helper
      btrfs: raid56: remove sector_ptr::has_paddr member
      btrfs: raid56: move sector_ptr::uptodate into a dedicated bitmap
      btrfs: raid56: remove sector_ptr structure
      btrfs: make btrfs_csum_one_bio() handle bs > ps without large folios
      btrfs: make btrfs_repair_io_failure() handle bs > ps cases without large folios
      btrfs: make read verification handle bs > ps cases without large folios
      btrfs: enable encoded read/write/send for bs > ps cases
      btrfs: scrub: always update btrfs_scrub_progress::last_physical
      btrfs: raid56: add an overview for the btrfs_raid_bio structure
      btrfs: raid56: introduce a new parameter to locate a sector
      btrfs: raid56: prepare generate_pq_vertical() for bs > ps cases
      btrfs: raid56: prepare recover_vertical() to support bs > ps cases
      btrfs: raid56: prepare verify_one_sector() to support bs > ps cases
      btrfs: raid56: prepare verify_bio_data_sectors() to support bs > ps cases
      btrfs: raid56: prepare set_bio_pages_uptodate() to support bs > ps cases
      btrfs: raid56: prepare steal_rbio() to support bs > ps cases
      btrfs: raid56: prepare rbio_bio_add_io_paddr() to support bs > ps cases
      btrfs: raid56: prepare finish_parity_scrub() to support bs > ps cases
      btrfs: raid56: enable bs > ps support
      btrfs: raid56: remove the "_step" infix

Rajeev Tapadia (1):
      btrfs: fix comment in alloc_bitmap() and drop stale TODO

Sun YangKai (6):
      btrfs: more trivial BTRFS_PATH_AUTO_FREE conversions
      btrfs: tests: do trivial BTRFS_PATH_AUTO_FREE conversions
      btrfs: factor out root promotion logic into promote_child_to_root()
      btrfs: optimize balance_level() path reference handling
      btrfs: simplify leaf traversal after path release in btrfs_next_old_leaf()
      btrfs: remove redundant level reset in btrfs_del_items()

Sweet Tea Dorminy (1):
      btrfs: disable verity on encrypted inodes

Xuanqiang Luo (1):
      btrfs: remove redundant refcount check in btrfs_put_transaction()

Zhen Ni (1):
      btrfs: fix incomplete parameter rename in btrfs_decompress()

 fs/btrfs/accessors.h              |   1 +
 fs/btrfs/acl.c                    |  25 +-
 fs/btrfs/backref.c                |  37 +-
 fs/btrfs/backref.h                |   7 +-
 fs/btrfs/bio.c                    | 290 +++++++++----
 fs/btrfs/bio.h                    |  39 +-
 fs/btrfs/block-group.c            |  83 ++--
 fs/btrfs/block-group.h            |   2 +-
 fs/btrfs/block-rsv.c              |  14 +-
 fs/btrfs/btrfs_inode.h            |  20 +-
 fs/btrfs/compression.c            |  47 +--
 fs/btrfs/compression.h            |  15 +-
 fs/btrfs/ctree.c                  | 240 ++++++-----
 fs/btrfs/ctree.h                  |  18 +-
 fs/btrfs/defrag.c                 |   5 +-
 fs/btrfs/delalloc-space.c         |   4 +-
 fs/btrfs/delayed-inode.c          |  26 +-
 fs/btrfs/delayed-ref.c            |  45 +-
 fs/btrfs/dev-replace.c            |   4 +-
 fs/btrfs/dir-item.c               |   4 +-
 fs/btrfs/direct-io.c              |  10 +-
 fs/btrfs/disk-io.c                |  64 ++-
 fs/btrfs/disk-io.h                |   3 +-
 fs/btrfs/extent-tree.c            | 172 ++++----
 fs/btrfs/extent-tree.h            |  27 +-
 fs/btrfs/extent_io.c              |  57 ++-
 fs/btrfs/extent_io.h              |   1 -
 fs/btrfs/extent_map.h             |   3 +-
 fs/btrfs/file-item.c              |  89 ++--
 fs/btrfs/file-item.h              |   4 +-
 fs/btrfs/file.c                   |  32 +-
 fs/btrfs/free-space-cache.c       |  24 +-
 fs/btrfs/free-space-tree.c        |  55 +--
 fs/btrfs/fs.h                     |  36 +-
 fs/btrfs/inode-item.c             |   5 +-
 fs/btrfs/inode.c                  | 194 +++++----
 fs/btrfs/ioctl.c                  | 173 ++++----
 fs/btrfs/messages.c               |   1 +
 fs/btrfs/messages.h               |   3 +-
 fs/btrfs/misc.h                   |   7 +
 fs/btrfs/ordered-data.c           |  74 ++--
 fs/btrfs/print-tree.c             |  16 +-
 fs/btrfs/qgroup.c                 | 182 ++++----
 fs/btrfs/raid-stripe-tree.c       |  18 +-
 fs/btrfs/raid56.c                 | 859 ++++++++++++++++++++++----------------
 fs/btrfs/raid56.h                 | 103 ++++-
 fs/btrfs/reflink.c                |  15 +-
 fs/btrfs/relocation.c             |  85 ++--
 fs/btrfs/root-tree.c              |   4 +-
 fs/btrfs/scrub.c                  | 270 +++++++-----
 fs/btrfs/send.c                   | 113 +++--
 fs/btrfs/space-info.c             | 464 ++++++++++----------
 fs/btrfs/space-info.h             |  43 +-
 fs/btrfs/subpage.c                |  67 ++-
 fs/btrfs/subpage.h                |   1 -
 fs/btrfs/super.c                  |  77 +++-
 fs/btrfs/sysfs.c                  |  58 ++-
 fs/btrfs/sysfs.h                  |   3 +-
 fs/btrfs/tests/extent-io-tests.c  |   3 +-
 fs/btrfs/tests/extent-map-tests.c |   6 +-
 fs/btrfs/tests/qgroup-tests.c     |  16 +-
 fs/btrfs/transaction.c            |  48 ++-
 fs/btrfs/transaction.h            |   4 -
 fs/btrfs/tree-checker.c           |  23 +-
 fs/btrfs/tree-log.c               | 183 ++++----
 fs/btrfs/tree-log.h               |   8 +-
 fs/btrfs/uuid-tree.c              | 120 ++----
 fs/btrfs/verity.c                 |  32 +-
 fs/btrfs/volumes.c                | 199 ++++-----
 fs/btrfs/volumes.h                |  10 +-
 fs/btrfs/xattr.c                  |  41 +-
 fs/btrfs/zoned.c                  |  53 ++-
 fs/btrfs/zoned.h                  |   7 +-
 include/uapi/linux/btrfs.h        |   9 +
 74 files changed, 2788 insertions(+), 2312 deletions(-)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ