linux/fs/btrfs
David Sterba ce6ef5abe6 btrfs: add little-endian optimized key helpers
The CPU and on-disk keys are mapped to two different structures because
of the endianness. There's an intermediate buffer used to do the
conversion, but this is not necessary when CPU and on-disk endianness
match.

Add optimized versions of helpers that take disk_key and use the buffer
directly for CPU keys or drop the intermediate buffer and conversion.

This saves a lot of stack space accross many functions and removes about
6K of generated binary code:

   text    data     bss     dec     hex filename
1090439   17468   14912 1122819  112203 pre/btrfs.ko
1084613   17456   14912 1116981  110b35 post/btrfs.ko

Delta: -5826

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2020-07-27 12:55:24 +02:00
..
tests btrfs: kill the subvol_srcu 2020-03-23 17:02:00 +01:00
acl.c
async-thread.c Btrfs: fix crash during unmount due to race with delayed inode workers 2020-03-23 17:01:51 +01:00
async-thread.h Btrfs: fix crash during unmount due to race with delayed inode workers 2020-03-23 17:01:51 +01:00
backref.c btrfs: fix double free on ulist after backref resolution failure 2020-07-21 21:59:15 +02:00
backref.h btrfs: rename BTRFS_ROOT_REF_COWS to BTRFS_ROOT_SHAREABLE 2020-05-25 11:25:35 +02:00
block-group.c btrfs: remove no longer necessary chunk mutex locking cases 2020-07-27 12:55:21 +02:00
block-group.h btrfs: move the block group freeze/unfreeze helpers into block-group.c 2020-05-25 11:25:30 +02:00
block-rsv.c btrfs: rename BTRFS_ROOT_REF_COWS to BTRFS_ROOT_SHAREABLE 2020-05-25 11:25:35 +02:00
block-rsv.h btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
btrfs_inode.h Revert "btrfs: remove BTRFS_INODE_READDIO_NEED_LOCK" 2020-06-09 19:21:48 +02:00
check-integrity.c btrfs: check-integrity: remove unnecessary failure messages during memory allocation 2020-07-27 12:55:21 +02:00
check-integrity.h
compression.c btrfs: unexport btrfs_compress_set_level() 2020-05-25 11:25:37 +02:00
compression.h btrfs: unexport btrfs_compress_set_level() 2020-05-25 11:25:37 +02:00
ctree.c btrfs: add little-endian optimized key helpers 2020-07-27 12:55:24 +02:00
ctree.h btrfs: add little-endian optimized key helpers 2020-07-27 12:55:24 +02:00
delalloc-space.c btrfs: remove the start argument from btrfs_free_reserved_data_space_noquota() 2020-07-27 12:55:21 +02:00
delalloc-space.h btrfs: remove the start argument from btrfs_free_reserved_data_space_noquota() 2020-07-27 12:55:21 +02:00
delayed-inode.c btrfs: use nofs allocations for running delayed items 2020-03-25 16:26:00 +01:00
delayed-inode.h btrfs: delayed-inode: Replace zero-length array with flexible-array member 2020-03-23 17:01:53 +01:00
delayed-ref.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
delayed-ref.h
dev-replace.c
dev-replace.h
dir-item.c
discard.c btrfs: discard: add missing put when grabbing block group from unused list 2020-07-07 16:06:28 +02:00
discard.h btrfs: discard: Use the correct style for SPDX License Identifier 2020-04-20 17:43:42 +02:00
disk-io.c btrfs: qgroup: catch reserved space leaks at unmount time 2020-07-27 12:55:24 +02:00
disk-io.h btrfs: simplify root lookup by id 2020-05-25 11:25:36 +02:00
export.c btrfs: simplify iget helpers 2020-05-25 11:25:37 +02:00
export.h
extent_io.c for-5.8-rc6-tag 2020-07-24 14:11:43 -07:00
extent_io.h A lot of bug fixes and cleanups for ext4, including: 2020-06-05 16:19:28 -07:00
extent_map.c
extent_map.h
extent-io-tree.h btrfs: fix corrupt log due to concurrent fsync of inodes with shared extents 2020-05-25 11:25:37 +02:00
extent-tree.c btrfs: rename BTRFS_ROOT_REF_COWS to BTRFS_ROOT_SHAREABLE 2020-05-25 11:25:35 +02:00
file-item.c btrfs: remove useless 'fail_unlock' label from btrfs_csum_file_blocks() 2020-05-25 11:25:37 +02:00
file.c btrfs: file: reserve qgroup space after the hole punch range is locked 2020-07-27 12:55:24 +02:00
free-space-cache.c btrfs: use helper btrfs_get_block_group 2020-07-27 12:55:21 +02:00
free-space-cache.h btrfs: let btrfs_return_cluster_to_free_space() return void 2020-07-27 12:55:21 +02:00
free-space-tree.c btrfs: move the root freeing stuff into btrfs_put_root 2020-03-23 17:01:59 +01:00
free-space-tree.h
inode-item.c
inode-map.c btrfs: Remove __ prefix from btrfs_block_rsv_release 2020-03-23 17:01:55 +01:00
inode-map.h
inode.c btrfs: change timing for qgroup reserved space for ordered extents to fix reserved space leak 2020-07-27 12:55:24 +02:00
ioctl.c btrfs: use kfree() in btrfs_ioctl_get_subvol_info() 2020-06-16 19:24:03 +02:00
Kconfig Revert "btrfs: switch to iomap_dio_rw() for dio" 2020-06-14 01:19:02 +02:00
locking.c btrfs: add missing annotation for btrfs_tree_lock() 2020-05-25 11:25:16 +02:00
locking.h
lzo.c
Makefile Btrfs: move all reflink implementation code into its own file 2020-03-23 17:01:54 +01:00
misc.h btrfs: rename tree_entry to rb_simple_node and export it 2020-05-25 11:25:19 +02:00
ordered-data.c btrfs: change timing for qgroup reserved space for ordered extents to fix reserved space leak 2020-07-27 12:55:24 +02:00
ordered-data.h btrfs: change timing for qgroup reserved space for ordered extents to fix reserved space leak 2020-07-27 12:55:24 +02:00
orphan.c
print-tree.c
print-tree.h
props.c btrfs: simplify iget helpers 2020-05-25 11:25:37 +02:00
props.h
qgroup.c btrfs: qgroup: catch reserved space leaks at unmount time 2020-07-27 12:55:24 +02:00
qgroup.h btrfs: qgroup: catch reserved space leaks at unmount time 2020-07-27 12:55:24 +02:00
raid56.c
raid56.h
rcu-string.h btrfs: rcu-string: Replace zero-length array with flexible-array member 2020-03-23 17:01:53 +01:00
reada.c
ref-verify.c btrfs: convert comments to fallthrough annotations 2020-07-02 10:18:30 +02:00
ref-verify.h
reflink.c btrfs: fix lost i_size update after cloning inline extent 2020-04-08 19:10:34 +02:00
reflink.h Btrfs: move all reflink implementation code into its own file 2020-03-23 17:01:54 +01:00
relocation.c btrfs: use btrfs_alloc_data_chunk_ondemand() when allocating space for relocation 2020-07-27 12:55:21 +02:00
root-tree.c btrfs: simplify root lookup by id 2020-05-25 11:25:36 +02:00
scrub.c btrfs: scrub: clean up temporary page variables in scrub_checksum_tree_block 2020-07-27 12:55:23 +02:00
send.c for-5.8-tag 2020-06-02 19:59:25 -07:00
send.h
space-info.c btrfs: fix reclaim_size counter leak after stealing from global reserve 2020-07-02 10:18:34 +02:00
space-info.h btrfs: improve global reserve stealing logic 2020-05-25 11:25:22 +02:00
struct-funcs.c btrfs: update documentation of set/get helpers 2020-05-25 11:25:35 +02:00
super.c btrfs: introduce "rescue=" mount option 2020-07-27 12:55:22 +02:00
sysfs.c btrfs: sysfs: Use scnprintf() instead of snprintf() 2020-03-23 18:14:47 +01:00
sysfs.h
transaction.c btrfs: simplify root lookup by id 2020-05-25 11:25:36 +02:00
transaction.h btrfs: improve global reserve stealing logic 2020-05-25 11:25:22 +02:00
tree-checker.c btrfs: tree-checker: remove duplicate definition of 'inode_item_err' 2020-05-25 11:25:23 +02:00
tree-checker.h
tree-defrag.c btrfs: rename BTRFS_ROOT_REF_COWS to BTRFS_ROOT_SHAREABLE 2020-05-25 11:25:35 +02:00
tree-log.c btrfs: check if a log root exists before locking the log_mutex on unlink 2020-06-16 19:22:23 +02:00
tree-log.h
ulist.c
ulist.h
uuid-tree.c btrfs: simplify root lookup by id 2020-05-25 11:25:36 +02:00
volumes.c btrfs: fix mount failure caused by race with umount 2020-07-21 22:08:54 +02:00
volumes.h btrfs: convert comments to fallthrough annotations 2020-07-02 10:18:30 +02:00
xattr.c
xattr.h
zlib.c
zstd.c