linux/block
Keith Busch 96c8ea3c5a block: save page offset gaps in cloned bio
The cloned bio needs to inherit the accumulated gaps between vectors so
that we can know if this bio can subscribe to the iova coalescing
optimization.

When cloning for a split, the gap only applies to the front bio since
that's as far as has been processed. The remaining bio can reset its
gaps to 0 since it advanced past the checked vectors, and will start its
accounting from there on the next split check.

Fixes: 2f6b2565d4 ("block: accumulate memory segment gaps per bio")
Reported-by: Eric Auger <eauger@redhat.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Link: https://patch.msgid.link/20260819154937.3903312-1-kbusch@meta.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2026-09-01 08:42:34 -06:00
..
partitions partitions: aix: bound the lvd scan to one sector 2026-07-15 16:32:49 -06:00
badblocks.c badblocks: Fix a nonsense WARN_ON() which checks whether a u64 variable < 0 2025-03-10 07:41:58 -06:00
bdev.c for-7.3/block-20260819 2026-08-20 13:55:16 -07:00
bfq-cgroup.c block/bfq-cgroup: use data_race() for online test 2026-08-03 20:18:08 -06:00
bfq-iosched.c block, bfq: don't grab queue_lock to initialize bfq 2026-06-24 06:42:31 -06:00
bfq-iosched.h block, bfq: update outdated comment 2026-01-01 08:57:37 -07:00
bfq-wf2q.c
bio-integrity-auto.c block: lift BIP_CHECK_FLAGS to include/linux/bio-integrity.h 2026-08-04 07:22:27 -06:00
bio-integrity-fs.c block: handle nogenerate/noverify properly in fs-integrity 2026-08-04 07:22:27 -06:00
bio-integrity.c block: handle REQ_OP_ZONE_APPEND in __bio_integrity_action 2026-06-24 06:53:25 -06:00
bio.c block: save page offset gaps in cloned bio 2026-09-01 08:42:34 -06:00
blk-cgroup-fc-appid.c
blk-cgroup-rwstat.c block/blk-cgroup-rwstat: use data_race() for online test 2026-08-03 20:00:09 -06:00
blk-cgroup-rwstat.h blk-cgroup: rwstat: fix kernel-doc warnings in header file 2025-01-13 07:47:09 -07:00
blk-cgroup.c block: skip blkcg walk in blk_cgroup_congested() when nothing throttled 2026-08-15 17:15:08 -06:00
blk-cgroup.h block: skip blkcg walk in blk_cgroup_congested() when nothing throttled 2026-08-15 17:15:08 -06:00
blk-core.c block: also reject zone open / close on conventional zones 2026-08-04 06:55:31 -06:00
blk-crypto-fallback.c blk-crypto: Simplify check for fallback support 2026-07-20 10:39:25 -07:00
blk-crypto-internal.h blk-crypto: Fold __blk_crypto_cfg_supported() into its caller 2026-07-20 10:39:25 -07:00
blk-crypto-profile.c blk-crypto: Fold __blk_crypto_cfg_supported() into its caller 2026-07-20 10:39:25 -07:00
blk-crypto-sysfs.c blk-crypto: make blk_crypto_attr instances const 2026-03-17 19:29:16 -06:00
blk-crypto.c blk-crypto: Remove unused function blk_crypto_config_supported() 2026-07-20 10:39:26 -07:00
blk-flush.c block: pass io_comp_batch to rq_end_io_fn callback 2026-01-20 10:12:54 -07:00
blk-ia-ranges.c block: ia-ranges: make blk_ia_range_sysfs_entry instances const 2026-03-17 19:29:16 -06:00
blk-integrity.c block: don't merge bios with different app_tags 2026-01-06 19:10:08 -07:00
blk-ioc.c copy_process: pass clone_flags as u64 across calltree 2025-09-01 15:31:34 +02:00
blk-iocost.c blk-iocost: clear delay state when freeing policy data 2026-08-15 17:15:08 -06:00
blk-iolatency.c blk-iolatency: clear delay state when freeing policy data 2026-08-15 17:15:08 -06:00
blk-ioprio.c treewide: Replace kmalloc with kmalloc_obj for non-scalar types 2026-02-21 01:02:28 -08:00
blk-ioprio.h blk-ioprio: remove per-disk structure 2024-07-28 16:47:51 -06:00
blk-lib.c block: add a bio_submit_or_kill helper 2026-04-07 08:22:24 -06:00
blk-map.c block: introduce bio_iov_iter_set() 2026-08-15 17:09:32 -06:00
blk-merge.c block: rename bi_bvec_done 2026-08-06 06:47:33 -06:00
blk-mq-cpumap.c blk-mq: add number of queue calc helper 2025-07-01 10:24:19 -06:00
blk-mq-debugfs.c block/blk-mq-debugfs: Improve lock context annotations 2026-06-05 13:41:11 -06:00
blk-mq-debugfs.h blk-mq-debugfs: remove blk_mq_debugfs_unregister_rqos() 2026-02-02 07:05:19 -07:00
blk-mq-dma.c block: rename bi_bvec_done 2026-08-06 06:47:33 -06:00
blk-mq-sched.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
blk-mq-sched.h blk-mq-sched: unify elevators checking for async requests 2026-02-03 07:45:36 -07:00
blk-mq-sysfs.c blk-mq: make blk_mq_hw_ctx_sysfs_entry instances const 2026-03-17 19:29:16 -06:00
blk-mq-tag.c blk-mq: add tracepoint block_rq_tag_wait 2026-05-26 11:01:54 -06:00
blk-mq.c blk-mq: add missing call to srcu_barrier() in blk_mq_free_tag_set() 2026-08-15 19:57:52 -06:00
blk-mq.h blk-mq: use queue_hctx in blk_mq_map_queue_type 2025-12-01 07:18:31 -07:00
blk-pm.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-pm.h
blk-rq-qos.c blk-mq-debugfs: remove blk_mq_debugfs_unregister_rqos() 2026-02-02 07:05:19 -07:00
blk-rq-qos.h blk-rq-qos: Remove unlikely() hints from QoS checks 2026-01-06 19:08:23 -07:00
blk-settings.c block: clear BLK_FEAT_PCI_P2PDMA in blk_stack_limits() for non-supporting devices 2026-05-26 15:51:48 -06:00
blk-stat.c block/blk-stat: drain per-cpu callback stats over possible CPUs 2026-08-03 20:03:20 -06:00
blk-stat.h blk-stat: convert struct blk_stat_callback to kernel-doc 2026-02-16 10:21:06 -07:00
blk-sysfs.c block: add configurable error injection 2026-06-12 10:40:35 -06:00
blk-throttle.c blk-cgroup: delay freeing policy data after rcu grace period 2026-06-24 06:37:54 -06:00
blk-throttle.h blk-throttle: remove dead field last_check_time from throtl_grp 2026-08-03 20:04:49 -06:00
blk-timeout.c
blk-wbt.c block: Make WBT latency writes honor enable state 2026-07-01 19:07:20 -06:00
blk-wbt.h blk-wbt: factor out a helper wbt_set_lat() 2026-02-02 07:05:19 -07:00
blk-zoned.c block: remove blk_zone_wplug_handle_zone_mgmt 2026-08-04 06:55:31 -06:00
blk.h block: rename bi_bvec_done 2026-08-06 06:47:33 -06:00
bsg-lib.c block: switch numa_node to int in blk_mq_hw_ctx and init_request 2026-05-26 11:01:55 -06:00
bsg.c bsg: add io_uring command support to generic layer 2026-03-19 11:38:24 -06:00
disk-events.c loop: fix partition scan race between udev and loop_reread_partitions() 2026-03-31 07:04:34 -06:00
early-lookup.c
elevator.c block: serialize elevator changes for the same queue using a writer lock 2026-07-16 06:08:38 -06:00
elevator.h block: fix race between wbt_enable_default and IO submission 2025-12-12 12:51:11 -07:00
error-injection.c block: show operation in error injection rules 2026-07-16 06:08:55 -06:00
error-injection.h block: add configurable error injection 2026-06-12 10:40:35 -06:00
fops.c for-7.3/block-20260819 2026-08-20 13:55:16 -07:00
genhd.c block: flag zoned disks with GENHD_FL_NO_PART 2026-08-31 22:42:09 -06:00
holder.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ioctl.c block: implement async io_uring zone reset all 2026-08-04 06:55:31 -06:00
ioprio.c block: remove test of incorrect io priority level 2025-05-08 09:04:12 -06:00
Kconfig block: add configurable error injection 2026-06-12 10:40:35 -06:00
Kconfig.iosched
kyber-iosched.c block/kyber-iosched: flush per-cpu latency buckets over possible CPUs 2026-08-03 20:03:20 -06:00
Makefile block: add configurable error injection 2026-06-12 10:40:35 -06:00
mq-deadline.c block/mq-deadline: Drop unused dd parameters 2026-08-15 17:14:50 -06:00
opal_proto.h sed-opal: Add STACK_RESET command 2026-03-31 07:04:00 -06:00
sed-opal.c sed-opal: Add STACK_RESET command 2026-03-31 07:04:00 -06:00
t10-pi.c blk-integrity: support arbitrary buffer alignment 2026-03-14 07:44:30 -06:00