linux/fs/btrfs
Christoph Hellwig be691b5e59 btrfs: split bios to the fs sector size boundary
Btrfs like other file systems can't really deal with I/O not aligned to
it's internal block size (which strangely is called sector size in
btrfs, for historical reasons), but the block layer split helper doesn't
even know about that.

Round down the split boundary so that all I/Os are aligned.

Fixes: d5e4377d50 ("btrfs: split zone append bios in btrfs_submit_bio")
CC: stable@vger.kernel.org # 6.12
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2024-12-17 19:54:32 +01:00
..
tests btrfs: tests: implement case for partial RAID stripe-tree delete 2024-11-11 14:34:19 +01:00
accessors.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
accessors.h move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
acl.c
acl.h
async-thread.c
async-thread.h
backref.c btrfs: pass fs_info to functions that search for delayed ref heads 2024-11-11 14:34:20 +01:00
backref.h
bio.c btrfs: split bios to the fs sector size boundary 2024-12-17 19:54:32 +01:00
bio.h btrfs: fix error propagation of split bios 2024-10-23 18:17:43 +02:00
block-group.c btrfs: correct typos in multiple comments across various files 2024-11-11 14:34:14 +01:00
block-group.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
block-rsv.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
block-rsv.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
btrfs_inode.h btrfs: add io_uring command for encoded reads (ENCODED_READ ioctl) 2024-11-11 14:34:21 +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: remove local generation variable from read_block_for_search() 2024-11-11 14:34:18 +01:00
ctree.h btrfs: fix improper generation check in snapshot delete 2024-12-17 19:54:32 +01:00
defrag.c btrfs: fix defrag not merging contiguous extents due to merged extent maps 2024-10-31 16:46:41 +01:00
defrag.h btrfs: drop transaction parameter from btrfs_add_inode_defrag() 2024-09-10 16:51:19 +02:00
delalloc-space.c btrfs: constify pointer parameters where applicable 2024-07-11 15:33:22 +02:00
delalloc-space.h btrfs: constify pointer parameters where applicable 2024-07-11 15:33:22 +02:00
delayed-inode.c btrfs: pass a btrfs_inode to btrfs_readdir_get_delayed_items() 2024-07-11 15:33:28 +02:00
delayed-inode.h btrfs: remove hole from struct btrfs_delayed_node 2024-11-11 14:34:22 +01:00
delayed-ref.c for-6.13-tag 2024-11-18 16:37:41 -08:00
delayed-ref.h btrfs: update stale comment for struct btrfs_delayed_ref_node::add_list 2024-11-11 14:34:22 +01:00
dev-replace.c btrfs: correct typos in multiple comments across various files 2024-11-11 14:34:14 +01:00
dev-replace.h
dir-item.c btrfs: drop unused parameter fs_info from btrfs_match_dir_item_name() 2024-11-11 14:34:17 +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: drop unused parameter iov_iter from btrfs_write_check() 2024-11-11 14:34:16 +01:00
direct-io.h btrfs: move the direct IO code into its own file 2024-07-11 15:33:29 +02:00
discard.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
discard.h
disk-io.c btrfs: remove fs_info parameter from btrfs_cleanup_one_transaction() 2024-11-11 14:34:19 +01:00
disk-io.h btrfs: remove fs_info parameter from btrfs_cleanup_one_transaction() 2024-11-11 14:34:19 +01:00
export.c btrfs: remove super block argument from btrfs_iget() 2024-07-11 15:33:25 +02:00
export.h
extent-io-tree.c btrfs: introduce EXTENT_DIO_LOCKED 2024-09-10 16:51:20 +02:00
extent-io-tree.h btrfs: introduce EXTENT_DIO_LOCKED 2024-09-10 16:51:20 +02:00
extent-tree.c btrfs: fix improper generation check in snapshot delete 2024-12-17 19:54:32 +01:00
extent-tree.h btrfs: do not BUG_ON() when freeing tree block after error 2024-07-11 15:33:26 +02:00
extent_io.c for-6.13-tag 2024-11-18 16:37:41 -08:00
extent_io.h btrfs: convert try_release_extent_mapping() to take a folio 2024-09-10 16:51:21 +02: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 btrfs: move fiemap code into its own file 2024-07-11 15:33:20 +02:00
file-item.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
file-item.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
file.c for-6.13-tag 2024-11-18 16:37:41 -08:00
file.h btrfs: convert btrfs_buffered_write() to use folios 2024-11-11 14:34:19 +01:00
free-space-cache.c btrfs: convert btrfs_buffered_write() to use folios 2024-11-11 14:34:19 +01:00
free-space-cache.h btrfs: add cancellation points to trim loops 2024-10-07 23:21:56 +02:00
free-space-tree.c btrfs: do not BUG_ON() when freeing tree block after error 2024-07-11 15:33:26 +02:00
free-space-tree.h
fs.c
fs.h btrfs: rename extent map shrinker members from struct btrfs_fs_info 2024-11-11 14:34:17 +01:00
inode-item.c btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
inode-item.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
inode.c for-6.13-tag 2024-11-18 16:37:41 -08:00
ioctl.c for-6.13-tag 2024-11-18 16:37:41 -08:00
ioctl.h btrfs: add io_uring command for encoded reads (ENCODED_READ ioctl) 2024-11-11 14:34:21 +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: remove unused btrfs_try_tree_write_lock() 2024-11-11 14:34:14 +01: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: lzo: drop unused paramter level from lzo_alloc_workspace() 2024-11-11 14:34:16 +01:00
Makefile btrfs: tests: add selftests for raid-stripe-tree 2024-11-11 14:34:14 +01:00
messages.c btrfs: disable rate limiting when debug enabled 2024-10-01 19:29:41 +02:00
messages.h
misc.h btrfs: constify pointer parameters where applicable 2024-07-11 15:33:22 +02:00
ordered-data.c cxl changes for v6.13 2024-11-22 12:33:52 -08:00
ordered-data.h btrfs: convert btrfs_mark_ordered_io_finished() to take a folio 2024-09-10 16:51:14 +02:00
orphan.c btrfs: BTRFS_PATH_AUTO_FREE in orphan.c 2024-09-10 16:51:22 +02:00
orphan.h
print-tree.c btrfs: avoid using fixed char array size for tree names 2024-08-02 22:44:27 +02:00
print-tree.h
props.c btrfs: pass a btrfs_inode to btrfs_set_prop() 2024-07-11 15:33:29 +02:00
props.h btrfs: pass a btrfs_inode to btrfs_set_prop() 2024-07-11 15:33:29 +02:00
qgroup.c btrfs: remove redundant initializations for struct btrfs_tree_parent_check 2024-11-11 14:34:18 +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: implement partial deletion of RAID stripe extents 2024-11-11 14:34:19 +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: fix uninitialized return value in the ref-verify tool 2024-07-02 19:14:57 +02:00
ref-verify.h
reflink.c btrfs: convert copy_inline_to_page() to use folio 2024-09-10 16:51:21 +02:00
reflink.h
relocation.c btrfs: drop unused transaction parameter from btrfs_qgroup_add_swapped_blocks() 2024-11-11 14:34:16 +01:00
relocation.h
root-tree.c
root-tree.h
scrub.c btrfs: drop unused parameter map from scrub_simple_mirror() 2024-11-11 14:34:16 +01:00
scrub.h
send.c btrfs: send: check for read-only send root under critical section 2024-11-11 14:34:23 +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: drop unused parameter fs_info from do_reclaim_sweep() 2024-11-11 14:34:15 +01:00
space-info.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
subpage.c btrfs: remove check for NULL fs_info at btrfs_folio_end_lock_bitmap() 2024-11-11 14:34:22 +01:00
subpage.h btrfs: rename btrfs_folio_(set|start|end)_writer_lock() 2024-11-11 14:34:18 +01:00
super.c for-6.13-tag 2024-11-18 16:37:41 -08:00
super.h btrfs: change BTRFS_MOUNT_* flags to 64bit type 2024-07-19 17:20:23 +02:00
sysfs.c btrfs: split out CONFIG_BTRFS_EXPERIMENTAL from CONFIG_BTRFS_DEBUG 2024-11-11 14:34:12 +01:00
sysfs.h
transaction.c btrfs: track delayed ref heads in an xarray 2024-11-11 14:34:21 +01:00
transaction.h btrfs: correct typos in multiple comments across various files 2024-11-11 14:34:14 +01:00
tree-checker.c btrfs: simplify arguments for btrfs_verify_level_key() 2024-11-11 14:34:18 +01:00
tree-checker.h btrfs: simplify arguments for btrfs_verify_level_key() 2024-11-11 14:34:18 +01:00
tree-log.c btrfs: drop unused parameter ctx from batch_delete_dir_index_items() 2024-11-11 14:34:15 +01:00
tree-log.h btrfs: avoid transaction commit on any fsync after subvolume creation 2024-07-11 15:33:24 +02:00
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 btrfs: preallocate ulist memory for qgroup rsv 2024-07-11 15:33:26 +02:00
ulist.h btrfs: preallocate ulist memory for qgroup rsv 2024-07-11 15:33:26 +02:00
uuid-tree.c move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
uuid-tree.h btrfs: move uuid tree related code to uuid-tree.[ch] 2024-09-10 16:51:12 +02:00
verity.c btrfs: add and use helper to verify the calling task has locked the inode 2024-09-10 16:51:22 +02:00
verity.h
volumes.c btrfs: do not clear read-only when adding sprout device 2024-11-11 14:34:18 +01:00
volumes.h btrfs: remove unused btrfs_is_parity_mirror() 2024-11-11 14:34:14 +01:00
xattr.c btrfs: drop unused parameter fs_info from btrfs_match_dir_item_name() 2024-11-11 14:34:17 +01:00
xattr.h btrfs: constify pointer parameters where applicable 2024-07-11 15:33:22 +02:00
zlib.c btrfs: zlib: make the compression path to handle sector size < page size 2024-11-11 14:34:12 +01:00
zoned.c for-6.13/block-20241118 2024-11-18 16:50:08 -08:00
zoned.h btrfs: constify more pointer parameters 2024-09-10 16:51:22 +02:00
zstd.c btrfs: zstd: assert the timer pointer in callback 2024-11-11 14:34:15 +01:00