linux/fs/btrfs
Linus Torvalds a578dd095d CRC updates for 6.17
Updates for the kernel's CRC (cyclic redundancy check) code:
 
  - Reorganize the architecture-optimized CRC code. It now lives in
    lib/crc/$(SRCARCH)/ rather than arch/$(SRCARCH)/lib/, and it is no
    longer artificially split into separate generic and arch modules.
    This allows better inlining and dead code elimination. The generic
    CRC code is also no longer exported, simplifying the API. (This
    mirrors the similar changes to SHA-1 and SHA-2 in lib/crypto/,
    which can be found in the "Crypto library updates" pull request.)
 
  - Improve crc32c() performance on newer x86_64 CPUs on long messages
    by enabling the VPCLMULQDQ optimized code.
 
  - Simplify the crypto_shash wrappers for crc32_le() and crc32c().
    Register just one shash algorithm for each that uses the (fully
    optimized) library functions, instead of unnecessarily providing
    direct access to the generic CRC code.
 
  - Remove unused and obsolete drivers for hardware CRC engines.
 
  - Remove CRC-32 combination functions that are no longer used.
 
  - Add kerneldoc for crc32_le(), crc32_be(), and crc32c().
 
  - Convert the crc32() macro to an inline function.
 -----BEGIN PGP SIGNATURE-----
 
 iIoEABYIADIWIQSacvsUNc7UX4ntmEPzXCl4vpKOKwUCaIZ8rRQcZWJpZ2dlcnNA
 a2VybmVsLm9yZwAKCRDzXCl4vpKOK3yOAP9OuoCirD42ZHNSgQeGTzhhZ2jCHiPN
 BPvHChwtE2MSRwEA0ddNX36aOiEKmpjog3TMllOIBz7wBrwZV7KgoX75+AU=
 =uAY8
 -----END PGP SIGNATURE-----

Merge tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux

Pull CRC updates from Eric Biggers:

 - Reorganize the architecture-optimized CRC code

   It now lives in lib/crc/$(SRCARCH)/ rather than arch/$(SRCARCH)/lib/,
   and it is no longer artificially split into separate generic and arch
   modules. This allows better inlining and dead code elimination

   The generic CRC code is also no longer exported, simplifying the API.
   (This mirrors the similar changes to SHA-1 and SHA-2 in lib/crypto/,
   which can be found in the "Crypto library updates" pull request)

 - Improve crc32c() performance on newer x86_64 CPUs on long messages by
   enabling the VPCLMULQDQ optimized code

 - Simplify the crypto_shash wrappers for crc32_le() and crc32c()

   Register just one shash algorithm for each that uses the (fully
   optimized) library functions, instead of unnecessarily providing
   direct access to the generic CRC code

 - Remove unused and obsolete drivers for hardware CRC engines

 - Remove CRC-32 combination functions that are no longer used

 - Add kerneldoc for crc32_le(), crc32_be(), and crc32c()

 - Convert the crc32() macro to an inline function

* tag 'crc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux: (26 commits)
  lib/crc: x86/crc32c: Enable VPCLMULQDQ optimization where beneficial
  lib/crc: x86: Reorganize crc-pclmul static_call initialization
  lib/crc: crc64: Add include/linux/crc64.h to kernel-api.rst
  lib/crc: crc32: Change crc32() from macro to inline function and remove cast
  nvmem: layouts: Switch from crc32() to crc32_le()
  lib/crc: crc32: Document crc32_le(), crc32_be(), and crc32c()
  lib/crc: Explicitly include <linux/export.h>
  lib/crc: Remove ARCH_HAS_* kconfig symbols
  lib/crc: x86: Migrate optimized CRC code into lib/crc/
  lib/crc: sparc: Migrate optimized CRC code into lib/crc/
  lib/crc: s390: Migrate optimized CRC code into lib/crc/
  lib/crc: riscv: Migrate optimized CRC code into lib/crc/
  lib/crc: powerpc: Migrate optimized CRC code into lib/crc/
  lib/crc: mips: Migrate optimized CRC code into lib/crc/
  lib/crc: loongarch: Migrate optimized CRC code into lib/crc/
  lib/crc: arm64: Migrate optimized CRC code into lib/crc/
  lib/crc: arm: Migrate optimized CRC code into lib/crc/
  lib/crc: Prepare for arch-optimized code in subdirs of lib/crc/
  lib/crc: Move files into lib/crc/
  lib/crc32: Remove unused combination support
  ...
2025-07-28 17:43:29 -07:00
..
tests btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
accessors.c btrfs: accessors: rename variable for folio offset 2025-07-22 00:09:21 +02:00
accessors.h btrfs: accessors: delete token versions of set/get helpers 2025-07-22 00:05:00 +02:00
acl.c
acl.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
async-thread.c btrfs: use list_first_entry() everywhere 2025-05-15 14:30:47 +02:00
async-thread.h
backref.c btrfs: set search_commit_root to false in iterate_inodes_from_logical() 2025-07-22 00:09:20 +02:00
backref.h btrfs: set search_commit_root to false in iterate_inodes_from_logical() 2025-07-22 00:09:20 +02:00
bio.c btrfs: switch RCU helper versions to btrfs_debug() 2025-07-21 23:56:38 +02:00
bio.h btrfs: pass a physical address to btrfs_repair_io_failure() 2025-05-15 14:30:46 +02:00
block-group.c btrfs: unfold transaction aborts when writing dirty block groups 2025-07-22 01:14:08 +02:00
block-group.h btrfs: cache if we are using free space bitmaps for a block group 2025-07-21 23:58:03 +02:00
block-rsv.c btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
block-rsv.h btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
btrfs_inode.h btrfs: enable large data folios for data reloc inode 2025-07-22 01:13:03 +02:00
compression.c btrfs: use pgoff_t for page index variables 2025-07-21 23:58:05 +02:00
compression.h btrfs: defrag: add flag to force no-compression 2025-07-22 01:13:03 +02:00
ctree.c btrfs: don't use token set/get accessors for btrfs_item members 2025-07-22 00:04:59 +02:00
ctree.h btrfs: split btrfs_is_fstree() into multiple if statements for readability 2025-07-21 23:58:04 +02:00
defrag.c btrfs: defrag: add flag to force no-compression 2025-07-22 01:13:03 +02:00
defrag.h btrfs: pass struct btrfs_inode to btrfs_defrag_file() 2025-03-18 20:35:43 +01:00
delalloc-space.c btrfs: add block reserve for treelog 2025-05-15 14:30:53 +02:00
delalloc-space.h btrfs: pass struct btrfs_inode to btrfs_free_reserved_data_space_noquota() 2025-05-15 14:30:52 +02:00
delayed-inode.c btrfs: make btrfs_readdir_delayed_dir_index() return a bool instead 2025-07-21 23:53:30 +02:00
delayed-inode.h btrfs: make btrfs_readdir_delayed_dir_index() return a bool instead 2025-07-21 23:53:30 +02:00
delayed-ref.c btrfs: add btrfs prefix to is_fstree() and make it return bool 2025-07-21 23:58:04 +02:00
delayed-ref.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
dev-replace.c btrfs: use fs_holder_ops for all opened devices 2025-07-22 00:06:20 +02:00
dev-replace.h btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
dir-item.c btrfs: rename inode number parameter passed to btrfs_check_dir_item_collision() 2025-07-22 00:05:00 +02:00
dir-item.h btrfs: rename inode number parameter passed to btrfs_check_dir_item_collision() 2025-07-22 00:05:00 +02:00
direct-io.c btrfs: remove superfluous return value check at btrfs_dio_iomap_begin() 2025-05-15 14:30:57 +02:00
direct-io.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
discard.c btrfs: use verbose assert at peek_discard_list() 2025-05-15 14:30:55 +02:00
discard.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
disk-io.c CRC updates for 6.17 2025-07-28 17:43:29 -07:00
disk-io.h btrfs: get rid of btrfs_read_dev_super() 2025-05-15 14:30:50 +02:00
export.c btrfs: make btrfs_iget() return a btrfs inode instead 2025-03-18 20:35:50 +01:00
export.h
extent-io-tree.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00
extent-io-tree.h btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
extent-tree.c btrfs: fix ssd_spread overallocation 2025-07-22 01:12:52 +02:00
extent-tree.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
extent_io.c btrfs: use clear_and_wake_up_bit() where open coded 2025-07-22 00:09:21 +02:00
extent_io.h btrfs: make extent_buffer_test_bit() return a boolean instead 2025-07-21 23:58:02 +02:00
extent_map.c btrfs: add btrfs prefix to is_fstree() and make it return bool 2025-07-21 23:58:04 +02:00
extent_map.h btrfs: rename remaining exported extent map functions 2025-05-15 14:30:45 +02:00
fiemap.c btrfs: use refcount_t type for the extent buffer reference counter 2025-07-21 23:53:30 +02:00
fiemap.h
file-item.c btrfs: use btrfs_is_data_reloc_root() where not done yet 2025-07-21 23:53:31 +02:00
file-item.h btrfs: change return type of btrfs_alloc_dummy_sum() to int 2025-05-15 14:30:49 +02:00
file.c vfs-6.17-rc1.mmap_prepare 2025-07-28 13:43:25 -07:00
file.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
free-space-cache.c btrfs: use pgoff_t for page index variables 2025-07-21 23:58:05 +02:00
free-space-cache.h
free-space-tree.c btrfs: cache if we are using free space bitmaps for a block group 2025-07-21 23:58:03 +02:00
free-space-tree.h btrfs: add btrfs prefix to free space tree exported functions 2025-07-21 23:58:02 +02:00
fs.c btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
fs.h btrfs: index buffer_tree using node size 2025-07-22 00:09:20 +02:00
inode-item.c btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode-item.h btrfs: remove unused parameters from btrfs_lookup_inode_extref() 2025-07-21 23:58:03 +02:00
inode.c btrfs: defrag: add flag to force no-compression 2025-07-22 01:13:03 +02:00
ioctl.c for-6.17/io_uring-20250728 2025-07-28 16:30:12 -07:00
ioctl.h tree-wide: s/struct fileattr/struct file_kattr/g 2025-07-04 16:14:39 +02:00
Kconfig btrfs: enable large data folio support under CONFIG_BTRFS_EXPERIMENTAL 2025-07-21 23:53:30 +02:00
locking.c btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
locking.h btrfs: trivial conversion to return bool instead of int 2025-05-15 14:30:49 +02:00
lru_cache.c
lru_cache.h btrfs: cleanup recursive include of the same header 2024-07-11 15:33:22 +02:00
lzo.c btrfs: prepare compression paths for large data folios 2025-05-15 14:30:45 +02:00
Makefile btrfs: selftests: add delayed ref self test cases 2025-01-13 14:53:13 +01:00
messages.c
messages.h btrfs: merge btrfs_printk_ratelimited() and its only caller 2025-07-21 23:56:39 +02:00
misc.h btrfs: add helper folio_end() 2025-07-21 23:58:01 +02:00
ordered-data.c btrfs: use folio_end() where appropriate 2025-07-21 23:58:01 +02:00
ordered-data.h btrfs: introduce a read path dedicated extent lock helper 2025-03-18 20:35:48 +01:00
orphan.c
orphan.h btrfs: add forward declarations and headers, part 1 2024-03-04 16:24:49 +01:00
print-tree.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00
print-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
props.c btrfs: props: switch prop_handler::extract to struct btrfs_inode 2025-03-18 20:35:44 +01:00
props.h btrfs: pass struct btrfs_inode to btrfs_inode_inherit_props() 2025-03-18 20:35:44 +01:00
qgroup.c btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
qgroup.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid-stripe-tree.c btrfs: unfold transaction abort at btrfs_insert_one_raid_extent() 2025-07-21 23:53:24 +02:00
raid-stripe-tree.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
raid56.c btrfs: raid56: use list_last_entry() at cache_rbio() 2025-05-15 14:30:54 +02:00
raid56.h btrfs: add forward declarations and headers, part 2 2024-03-04 16:24:49 +01:00
ref-verify.c btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
ref-verify.h btrfs: constify more pointer parameters 2025-07-21 23:53:26 +02:00
reflink.c btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
reflink.h
relocation.c btrfs: enable large data folios for data reloc inode 2025-07-22 01:13:03 +02:00
relocation.h btrfs: don't print relocation messages from auto reclaim 2025-07-22 00:09:22 +02:00
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 btrfs: qgroup: fix qgroup prealloc rsv leak in subvolume operations 2024-04-02 19:18:23 +02:00
scrub.c btrfs: switch RCU helper versions to btrfs_warn() 2025-07-21 23:56:38 +02:00
scrub.h btrfs: add forward declarations and headers, part 1 2024-03-04 16:24:49 +01:00
send.c btrfs: send: use fallocate for hole punching with send stream v2 2025-07-22 01:23:14 +02:00
send.h btrfs: pass btrfs_root pointers to send ioctl parameters 2025-03-18 20:35:49 +01:00
space-info.c btrfs: change dump_block_groups() in btrfs_dump_space_info() from int to bool 2025-07-21 23:58:05 +02:00
space-info.h btrfs: change dump_block_groups() in btrfs_dump_space_info() from int to bool 2025-07-21 23:58:05 +02:00
subpage.c btrfs: output more info when btrfs_subpage_assert() failed 2025-07-22 01:13:03 +02:00
subpage.h btrfs: enable large data folio support under CONFIG_BTRFS_EXPERIMENTAL 2025-07-21 23:53:30 +02:00
super.c Current exclusion rules for ->d_flags stores are rather unpleasant. 2025-07-28 09:17:57 -07:00
super.h
sysfs.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00
sysfs.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
transaction.c btrfs: qgroup: fix qgroup create ioctl returning success after quotas disabled 2025-07-22 00:07:30 +02:00
transaction.h btrfs: move abort_should_print_stack() to transaction.h 2025-01-13 14:53:17 +01:00
tree-checker.c btrfs: add btrfs prefix to is_fstree() and make it return bool 2025-07-21 23:58:04 +02: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: use saner variable type and name to indicate extrefs at add_inode_ref() 2025-07-22 01:14:07 +02:00
tree-log.h
tree-mod-log.c btrfs: reduce size of struct tree_mod_elem 2025-07-22 00:09:20 +02:00
tree-mod-log.h
ulist.c btrfs: use rb_find_add() in ulist_rbtree_insert() 2025-07-21 23:53:25 +02:00
ulist.h btrfs: preallocate ulist memory for qgroup rsv 2024-07-11 15:33:26 +02:00
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 btrfs: pass struct btrfs_inode to btrfs_sync_inode_flags_to_i_flags() 2025-03-18 20:35:49 +01:00
verity.h
volumes.c btrfs: remove btrfs_clear_extent_bits() 2025-07-22 00:09:22 +02:00
volumes.h btrfs: don't print relocation messages from auto reclaim 2025-07-22 00:09:22 +02:00
xattr.c btrfs: replace strcpy() with strscpy() 2025-07-22 00:05:00 +02:00
xattr.h btrfs: update include and forward declarations in headers 2025-03-18 20:35:43 +01:00
zlib.c btrfs: prepare compression paths for large data folios 2025-05-15 14:30:45 +02:00
zoned.c btrfs: remove struct rcu_string 2025-07-22 00:09:21 +02:00
zoned.h btrfs: zoned: reserve data_reloc block group on mount 2025-07-21 23:56:31 +02:00
zstd.c btrfs: use our message helpers instead of pr_err/pr_warn/pr_info 2025-07-21 23:58:04 +02:00