1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-01-22 16:06:04 -05:00
linux/fs/btrfs
Linus Torvalds 0eb4aaa230 for-6.14-tag
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEE8rQSAMVO+zA4DBdWxWXV+ddtWDsFAmeHvVQACgkQxWXV+ddt
 WDsJ6w//cPqI8tf3kMxurZcG7clJRIIISotPrC6hm3UDNpJLa7HDaVJ50FAoIhMV
 sB4RQNZky4mfB6ypXxmETzV3ZHvP0+oFgRs72Ommi0ZbdnBgxhaUTrDXLKl52o4r
 UoeqvRKReEYOesN09rPXYPwytUOkxHU/GjNzv7bC/Tzvq/xKaIN5qMYZwkHtJ8PK
 JtCFypfbmDPNDJz37l0BhRya2oMtpcUtxM9uP8RWVuQtaELgjcy56W/+osoyJTy9
 FSKaoWUPsDVDufnILlGR8Kub2Z5mcISVqyARUdr/q3j5CDfyTdQvahmUy7sHgUAe
 HGh5QBdRJu1QTvdZw+nK4YCaYpK6Nj4liDtO1cwVitde5RXsJrt6kYBLlY/kU2Qr
 KODOloM/zVKxULR0ARl11NULZquUsczP6Wxfn+dtyDJ3JGlY9OcuESmorHoUtkMX
 75Tj1AtRMNcfZAE2HquL1Oz3bIMcg4btDJsC+9Yp5K11SP12XpOwC42k/9Bx3iBe
 Iki0BSuppFqX5MMY3OEWzD1pz2vOGYR8ISD6EIsjpjl2vBeRwydaCCZfuszSC7gl
 Y4goSdwFMPVlqllL1h27XUjKVXvttCqqdB6P28MbvZKnFAPlm189BJQZC5cbHAJU
 ceBww5PvI9QxnJnFG5iOLcnko6liUWPP9l2c5LLtUsJIi8B5Hu0=
 =SXLv
 -----END PGP SIGNATURE-----

Merge tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux

Pull btrfs updates from David Sterba:
 "User visible changes, features:

   - rebuilding of the free space tree at mount time is done in more
     transactions, fix potential hangs when the transaction thread is
     blocked due to large amount of block groups

   - more read IO balancing strategies (experimental config), add two
     new ways how to select a device for read if the profiles allow that
     (all RAID1*), the current default selects the device by pid which
     is good on average but less performant for single reader workloads

       - select preferred device for all reads (namely for testing)
       - round-robin, balance reads across devices relevant for the
         requested IO range

   - add encoded write ioctl support to io_uring (read was added in
     6.12), basis for writing send stream using that instead of
     syscalls, non-blocking mode is not yet implemented

   - support FS_IOC_READ_VERITY_METADATA, applications can use the
     metadata to do their own verification

   - pass inode's i_write_hint to bios, for parity with other
     filesystems, ioctls F_GET_RW_HINT/F_SET_RW_HINT

  Core:

   - in zoned mode: allow to directly reclaim a block group by simply
     resetting it, then it can be reused and another block group does
     not need to be allocated

   - super block validation now also does more comprehensive sys array
     validation, adding it to the points where superblock is validated
     (post-read, pre-write)

   - subpage mode fixes:
      - fix double accounting of blocks due to some races
      - improved or fixed error handling in a few cases (compression,
        delalloc)

   - raid stripe tree:
      - fix various cases with extent range splitting or deleting
      - implement hole punching to extent range
      - reduce number of stripe tree lookups during bio submission
      - more self-tests

   - updated self-tests (delayed refs)

   - error handling improvements

   - cleanups, refactoring
      - remove rest of backref caching infrastructure from relocation,
        not needed anymore
      - error message updates
      - remove unnecessary calls when extent buffer was marked dirty
      - unused parameter removal
      - code moved to new files

  Other code changes: add rb_find_add_cached() to the rb-tree API"

* tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (127 commits)
  btrfs: selftests: add a selftest for deleting two out of three extents
  btrfs: selftests: add test for punching a hole into 3 RAID stripe-extents
  btrfs: selftests: add selftest for punching holes into the RAID stripe extents
  btrfs: selftests: test RAID stripe-tree deletion spanning two items
  btrfs: selftests: don't split RAID extents in half
  btrfs: selftests: check for correct return value of failed lookup
  btrfs: don't use btrfs_set_item_key_safe on RAID stripe-extents
  btrfs: implement hole punching for RAID stripe extents
  btrfs: fix deletion of a range spanning parts two RAID stripe extents
  btrfs: fix tail delete of RAID stripe-extents
  btrfs: fix front delete range calculation for RAID stripe extents
  btrfs: assert RAID stripe-extent length is always greater than 0
  btrfs: don't try to delete RAID stripe-extents if we don't need to
  btrfs: selftests: correct RAID stripe-tree feature flag setting
  btrfs: add io_uring interface for encoded writes
  btrfs: remove the unused locked_folio parameter from btrfs_cleanup_ordered_extents()
  btrfs: add extra error messages for delalloc range related errors
  btrfs: subpage: dump the involved bitmap when ASSERT() failed
  btrfs: subpage: fix the bitmap dump of the locked flags
  btrfs: do proper folio cleanup when run_delalloc_nocow() failed
  ...
2025-01-20 13:09:30 -08:00
..
tests btrfs: selftests: add a selftest for deleting two out of three extents 2025-01-14 15:57:55 +01:00
accessors.c
accessors.h
acl.c
acl.h
async-thread.c btrfs: async-thread: rename DFT_THRESHOLD to DEFAULT_THRESHOLD 2025-01-13 14:53:23 +01:00
async-thread.h
backref.c btrfs: update prelim_ref_insert() to use rb helpers 2025-01-13 14:53:18 +01:00
backref.h btrfs: remove detached list from struct btrfs_backref_cache 2025-01-13 14:53:15 +01:00
bio.c btrfs: add tracking of read blocks for read policy 2025-01-13 14:53:21 +01:00
bio.h
block-group.c btrfs: block-group: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
block-group.h
block-rsv.c btrfs: drop fs_info argument from btrfs_update_space_info_*() 2025-01-13 14:53:14 +01:00
block-rsv.h
btrfs_inode.h btrfs: remove no longer needed strict argument from can_nocow_extent() 2025-01-13 14:53:16 +01:00
compression.c btrfs: use filemap_get_folio() helper 2024-11-11 14:34:19 +01:00
compression.h btrfs: lzo: drop unused paramter level from lzo_alloc_workspace() 2024-11-11 14:34:16 +01:00
ctree.c btrfs: implement hole punching for RAID stripe extents 2025-01-14 15:52:13 +01:00
ctree.h btrfs: remove pointless comment from ctree.h 2025-01-13 14:53:17 +01:00
defrag.c
defrag.h
delalloc-space.c btrfs: drop fs_info argument from btrfs_update_space_info_*() 2025-01-13 14:53:14 +01:00
delalloc-space.h
delayed-inode.c btrfs: drop unused parameter fs_info to btrfs_delete_delayed_insertion_item() 2025-01-13 14:53:21 +01:00
delayed-inode.h btrfs: remove hole from struct btrfs_delayed_node 2024-11-11 14:34:22 +01:00
delayed-ref.c btrfs: update tree_insert() to use rb helpers 2025-01-13 14:53:18 +01:00
delayed-ref.h btrfs: move select_delayed_ref() and export it 2025-01-13 14:53:13 +01:00
dev-replace.c btrfs: dev-replace: remove unnecessary call to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
dev-replace.h
dir-item.c btrfs: dir-item: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
dir-item.h btrfs: drop unused parameter fs_info from btrfs_match_dir_item_name() 2024-11-11 14:34:17 +01:00
direct-io.c btrfs: remove no longer needed strict argument from can_nocow_extent() 2025-01-13 14:53:16 +01:00
direct-io.h
discard.c
discard.h
disk-io.c btrfs: split waiting from read_extent_buffer_pages(), drop parameter wait 2025-01-13 14:53:23 +01:00
disk-io.h btrfs: remove stray comment about SRCU 2025-01-13 14:53:21 +01:00
export.c
export.h
extent-io-tree.c
extent-io-tree.h
extent-tree.c btrfs: use SECTOR_SIZE defines in btrfs_issue_discard() 2025-01-13 14:53:22 +01:00
extent-tree.h btrfs: move extent-tree function declarations out of ctree.h 2025-01-13 14:53:17 +01:00
extent_io.c btrfs: add extra error messages for delalloc range related errors 2025-01-13 15:59:35 +01:00
extent_io.h btrfs: split waiting from read_extent_buffer_pages(), drop parameter wait 2025-01-13 14:53:23 +01:00
extent_map.c btrfs: rename extent map shrinker members from struct btrfs_fs_info 2024-11-11 14:34:17 +01:00
extent_map.h btrfs: make the extent map shrinker run asynchronously as a work queue job 2024-11-11 14:34:17 +01:00
fiemap.c btrfs: correct typos in multiple comments across various files 2024-11-11 14:34:14 +01:00
fiemap.h
file-item.c btrfs: file-item: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
file-item.h
file.c btrfs: file: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
file.h btrfs: convert btrfs_buffered_write() to use folios 2024-11-11 14:34:19 +01:00
free-space-cache.c btrfs: open code set_page_extent_mapped() 2025-01-13 14:53:22 +01:00
free-space-cache.h
free-space-tree.c btrfs: free-space-tree: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
free-space-tree.h
fs.c btrfs: use uuid_is_null() to verify if an uuid is empty 2025-01-13 14:53:17 +01:00
fs.h btrfs: add tracking of read blocks for read policy 2025-01-13 14:53:21 +01:00
inode-item.c btrfs: inode-item: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:19 +01:00
inode-item.h
inode.c btrfs: remove the unused locked_folio parameter from btrfs_cleanup_ordered_extents() 2025-01-13 16:00:50 +01:00
ioctl.c btrfs: add io_uring interface for encoded writes 2025-01-13 21:06:31 +01:00
ioctl.h btrfs: move btrfs_is_empty_uuid() from ioctl.c into fs.c 2025-01-13 14:53:17 +01:00
Kconfig btrfs: split out CONFIG_BTRFS_EXPERIMENTAL from CONFIG_BTRFS_DEBUG 2024-11-11 14:34:12 +01:00
locking.c btrfs: remove unused btrfs_try_tree_write_lock() 2024-11-11 14:34:14 +01:00
locking.h btrfs: add assertions and comment about path expectations to btrfs_cross_ref_exist() 2025-01-13 14:53:16 +01:00
lru_cache.c
lru_cache.h
lzo.c btrfs: lzo: drop unused paramter level from lzo_alloc_workspace() 2024-11-11 14:34:16 +01:00
Makefile btrfs: selftests: add delayed ref self test cases 2025-01-13 14:53:13 +01:00
messages.c
messages.h
misc.h
ordered-data.c cxl changes for v6.13 2024-11-22 12:33:52 -08:00
ordered-data.h
orphan.c
orphan.h
print-tree.c
print-tree.h
props.c
props.h
qgroup.c btrfs: qgroup: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
qgroup.h btrfs: drop unused transaction parameter from btrfs_qgroup_add_swapped_blocks() 2024-11-11 14:34:16 +01:00
raid-stripe-tree.c btrfs: don't use btrfs_set_item_key_safe on RAID stripe-extents 2025-01-14 15:52:22 +01:00
raid-stripe-tree.h btrfs: tests: add selftests for raid-stripe-tree 2024-11-11 14:34:14 +01:00
raid56.c btrfs: make assert_rbio() to only check CONFIG_BTRFS_ASSERT 2024-11-11 14:34:12 +01:00
raid56.h
rcu-string.h
ref-verify.c btrfs: ref-verify: fix use-after-free after invalid ref action 2024-11-29 16:52:29 +01:00
ref-verify.h
reflink.c
reflink.h
relocation.c btrfs: open code set_page_extent_mapped() 2025-01-13 14:53:22 +01:00
relocation.h
root-tree.c btrfs: root-tree: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
root-tree.h
scrub.c btrfs: avoid NULL pointer dereference if no valid extent tree 2025-01-06 16:32:31 +01:00
scrub.h
send.c btrfs: send: remove redundant assignments to variable ret 2025-01-13 14:53:14 +01:00
send.h btrfs: split out CONFIG_BTRFS_EXPERIMENTAL from CONFIG_BTRFS_DEBUG 2024-11-11 14:34:12 +01:00
space-info.c btrfs: zoned: reclaim unused zone by zone resetting 2025-01-13 14:53:14 +01:00
space-info.h btrfs: zoned: reclaim unused zone by zone resetting 2025-01-13 14:53:14 +01:00
subpage.c btrfs: subpage: dump the involved bitmap when ASSERT() failed 2025-01-13 15:57:51 +01:00
subpage.h btrfs: do proper folio cleanup when run_delalloc_nocow() failed 2025-01-13 15:52:17 +01:00
super.c btrfs: print read policy on module load 2025-01-13 14:53:21 +01:00
super.h
sysfs.c btrfs: configure read policy via module parameter 2025-01-13 14:53:21 +01:00
sysfs.h btrfs: configure read policy via module parameter 2025-01-13 14:53:21 +01:00
transaction.c btrfs: drop fs_info argument from btrfs_update_space_info_*() 2025-01-13 14:53:14 +01:00
transaction.h btrfs: move abort_should_print_stack() to transaction.h 2025-01-13 14:53:17 +01:00
tree-checker.c btrfs: validate system chunk array at btrfs_validate_super() 2025-01-13 14:53:18 +01:00
tree-checker.h btrfs: validate system chunk array at btrfs_validate_super() 2025-01-13 14:53:18 +01:00
tree-log.c btrfs: tree-log: remove unnecessary calls to btrfs_mark_buffer_dirty() 2025-01-13 14:53:18 +01:00
tree-log.h
tree-mod-log.c btrfs: drop unused parameter path from btrfs_tree_mod_log_rewind() 2024-11-11 14:34:15 +01:00
tree-mod-log.h btrfs: drop unused parameter path from btrfs_tree_mod_log_rewind() 2024-11-11 14:34:15 +01:00
ulist.c
ulist.h
uuid-tree.c btrfs: uuid-tree: remove unnecessary call to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
uuid-tree.h
verity.c
verity.h
volumes.c for-6.14-tag 2025-01-20 13:09:30 -08:00
volumes.h btrfs: add read policy to set a preferred device 2025-01-13 14:53:21 +01:00
xattr.c btrfs: xattr: remove unnecessary call to btrfs_mark_buffer_dirty() 2025-01-13 14:53:20 +01:00
xattr.h
zlib.c btrfs: zlib: fix avail_in bytes for s390 zlib HW compression path 2025-01-06 16:32:43 +01:00
zoned.c btrfs: zoned: reclaim unused zone by zone resetting 2025-01-13 14:53:14 +01:00
zoned.h btrfs: zoned: reclaim unused zone by zone resetting 2025-01-13 14:53:14 +01:00
zstd.c btrfs: zstd: assert the timer pointer in callback 2024-11-11 14:34:15 +01:00