linux/block
Linus Torvalds 27dd2772e6 vfs-7.4-rc1.iomap
Please consider pulling these changes from the signed vfs-7.4-rc1.iomap tag.
 
 Thanks!
 Christian
 -----BEGIN PGP SIGNATURE-----
 
 iHUEABYKAB0WIQRAhzRXHqcMeLMyaSiRxhvAZXjcogUCatHrlgAKCRCRxhvAZXjc
 okLFAQDtL+joq4F75iD2qaULpmj7kWby23E7u88ccIVUONbpWgD+L0S5lPCd4upL
 fGyRMlQOybiRX1uHH13xGPU9wZ2Iggk=
 =ZSC6
 -----END PGP SIGNATURE-----

Merge tag 'vfs-7.4-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs

Pull iomap updates from Christian Brauner:
 "This contains the iomap changes for this cycle.

  The bulk is lazy bounce buffering for checksummed reads. XFS bounce
  buffers every direct read on a device that requires stable pages for
  checksumming so that userspace modifying the buffer while the read is
  in flight can't corrupt the data and fail the checksum.

  That burns DRAM bandwidth and CPU for copies that are almost never
  needed and, since the bounce buffer was a bio_vec, produced smaller
  and unaligned I/Os with 4k pages, i.e. 1 MB minus 4k.

  Now the read goes to the user buffer first and only a checksum failure
  allocates a bounce buffer and reads again. Integrity verification
  moves out of iomap into the filesystem so it can handle errors its own
  way, T10 PI handling for direct I/O moves into ->submit_io() to match
  buffered I/O, and a sysfs knob restores the old behaviour for the rare
  application that really does modify in-flight buffers.

  The block side gains bio_prepare_reissue(), exports
  fs_bio_integrity_{alloc,free}(), caps atomic writes by the PI buffer
  size and fixes an integer overflow in max_integrity_io_size() and a PI
  verification bug with an initial bvec offset. The old read side bounce
  buffering in the block layer is removed. This is a branch shared with
  the block tree and may also reach you through the block pull request.

  Three error handling regressions are fixed:
   - A failed ->writeback_submit() left wpc->wb_ctx pointing at an
     already completed ioend which was then submitted a second time and
     corrupted ip->i_ioend_list on XFS
   - iomap_fiemap() lost an iteration error when it flushed the pending
     extent and marked a truncated list as complete
   - A failed direct I/O bio lost its error when the sub-block tail
     zeroing succeeded. An XFS error tag to inject the writeback failure
     comes with it.

  iomap_dio_hole_iter() respects the block size alignment when
  iov_iter_zero() stops short at a page boundary, which btrfs with 8k
  blocks on 4k pages hit as an assertion since it disables page faults
  during direct I/O. The homegrown deferral of error completions to task
  context is replaced with bio_complete_in_task(). Plus an unused
  parameter, two typo fixes and a kernel-doc fix"

* tag 'vfs-7.4-rc1.iomap' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs: (34 commits)
  fs/iomap: document ret parameter of iomap_iter_continue
  iomap: follow the alignment requirement for iomap_dio_hole_iter()
  iomap: don't lose a failed direct I/O bio's error when zeroing the tail
  iomap: don't lose a fiemap iteration error when emitting the last extent
  xfs: add an error tag to inject a ->writeback_submit() failure
  iomap: don't resubmit an ioend after ->writeback_submit() failed
  iomap: use bio_complete_in_task for buffered simple dio read failures
  iomap: use bio_complete_in_task for buffered write failures
  iomap: use bio_complete_in_task for buffered read failures
  block,iomap: remove the old read side bounce buffering support
  xfs: log a message at mount time when using integrity protection
  xfs: add error injection for lazy bounce buffering
  xfs: add support for lazy direct read bounce buffering
  iomap,xfs: move integrity verification to the file system
  xfs: use BIO_COMPLETE_IN_TASK for bounce buffered read I/Os
  iomap: better read bounce buffering support
  block,iomap: fix protection information verification with initial bvec offset
  xfs: move PI generation into xfs_submit_zoned_bio
  iomap,xfs: move T10 PI handling for direct I/O into ->submit_io
  iomap: add a IOMAP_IOEND_INTEGRITY flag
  ...
2026-10-19 18:33:02 -10:00
..
partitions block: store GPT attributes as a raw value 2026-09-10 14:42:00 -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,iomap: fix protection information verification with initial bvec offset 2026-09-14 07:42:09 -06:00
bio-integrity.c block: warn on too larger integrity allocations 2026-09-14 07:42:07 -06:00
bio.c block,iomap: remove the old read side bounce buffering support 2026-09-14 07:42:09 -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 blk-cgroup: save IRQ state in blkg_tryget_closest() 2026-09-11 12:32:40 -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: pass a maxlen argument to bio_iov_iter_get_pages 2026-09-14 07:41:55 -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: allow cached requests to be used for flush operations 2026-09-23 05:26:17 -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: cap atomic write size by PI buffer size constraints 2026-09-11 07:24:54 -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 scsi: block: Fix zones_cond out-of-bounds write on zone report 2026-09-16 10:11:45 -04:00
blk.h block: rename bi_bvec_done 2026-08-06 06:47:33 -06:00
bsg-lib.c scsi: bsg: Pass reply_len to bsg_setup_queue() to fit UFS ARPMB replies 2026-10-14 22:14:52 -04: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 wrapper for access to ->bd_partno 2024-05-02 17:48:09 -04:00
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 vfs-7.4-rc1.iomap 2026-10-19 18:33:02 -10: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 blk-mq: set RQF_USE_SCHED when the operation is known 2026-09-23 05:26:17 -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