linux-yocto/block
Christoph Hellwig 17ecefc9fd block: don't silently ignore metadata for sync read/write
[ Upstream commit 2729a60bbfb9215997f25372ebe9b7964f038296 ]

The block fops don't try to handle metadata for synchronous requests,
probably because the completion handler looks at dio->iocb which is not
valid for synchronous requests.

But silently ignoring metadata (or warning in case of
__blkdev_direct_IO_simple) is a really bad idea as that can cause
silent data corruption if a user ever shows up.

Instead simply handle metadata for synchronous requests as the completion
handler can simply check for bio_integrity() as the block layer default
integrity will already be freed at this point, and thus bio_integrity()
will only return true for user mapped integrity.

Fixes: 3d8b5a22d4 ("block: add support to pass user meta buffer")
Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/20250819082517.2038819-3-hch@lst.de
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-09-19 16:37:26 +02:00
..
partitions for-6.15/block-20250322 2025-03-26 18:08:55 -07: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 xfs: New code for 6.16 2025-05-26 12:56:01 -07:00
bfq-cgroup.c Revert "block, bfq: merge bfq_release_process_ref() into bfq_put_cooperator()" 2024-11-19 19:05:32 -07:00
bfq-iosched.c block: move elevator queue allocation logic into blk_mq_init_sched 2025-08-28 16:34:50 +02:00
bfq-iosched.h lib/sbitmap: convert shallow_depth from one word to the whole sbitmap 2025-08-20 18:41:31 +02:00
bfq-wf2q.c
bio-integrity-auto.c block: always allocate integrity buffer when required 2025-05-12 07:14:03 -06:00
bio-integrity.c block: drop direction param from bio_integrity_copy_user() 2025-06-03 12:45:45 -06:00
bio.c for-6.16/block-20250523 2025-05-26 11:39:36 -07:00
blk-cgroup-fc-appid.c block: Replace all non-returning strlcpy with strscpy 2023-06-01 09:13:31 -06:00
blk-cgroup-rwstat.c blk-cgroup: use group allocation/free of per-cpu counters API 2024-04-03 09:10:17 -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 cgroup: Changes for v6.16 2025-05-27 20:59:53 -07:00
blk-cgroup.h block: correct locking order for protecting blk-wbt parameters 2025-03-19 11:35:45 -06:00
blk-core.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
blk-crypto-fallback.c block: add a bi_write_stream field 2025-05-06 07:46:43 -06:00
blk-crypto-internal.h blk-crypto: add ioctls to create and prepare hardware-wrapped keys 2025-02-10 09:54:19 -07:00
blk-crypto-profile.c blk-crypto: export wrapped key functions 2025-05-06 19:08:08 +02:00
blk-crypto-sysfs.c blk-crypto: show supported key types in sysfs 2025-02-10 09:54:19 -07:00
blk-crypto.c blk-crypto: add ioctls to create and prepare hardware-wrapped keys 2025-02-10 09:54:19 -07:00
blk-flush.c block: remove unused parameter 2025-03-12 08:25:28 -06:00
blk-ia-ranges.c block: get rid of request queue ->sysfs_dir_lock 2025-01-29 07:16:47 -07:00
blk-integrity.c block: flip iter directions in blk_rq_integrity_map_user() 2025-06-03 17:24:59 -06:00
blk-ioc.c block: replace call_rcu by kfree_rcu for simple kmem_cache_free callback 2024-10-22 08:16:40 -06:00
blk-iocost.c for-6.15/block-20250322 2025-03-26 18:08:55 -07:00
blk-iolatency.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
blk-ioprio.c blk-cgroup: Simplify policy files registration 2025-03-11 09:22:55 -10:00
blk-ioprio.h blk-ioprio: remove per-disk structure 2024-07-28 16:47:51 -06:00
blk-lib.c block: fix detection of unsupported WRITE SAME in blkdev_issue_write_zeroes 2024-08-28 08:49:25 -06:00
blk-map.c block: simplify bio_map_kern 2025-05-07 07:31:07 -06:00
blk-merge.c block: use plug request list tail for one-shot backmerge attempt 2025-06-11 08:48:46 -06:00
blk-mq-cpumap.c blk-mq: create correct map for fallback case 2025-01-23 06:34:32 -07:00
blk-mq-debugfs.c block: avoid cpu_hotplug_lock depedency on freeze_lock 2025-08-28 16:34:50 +02:00
blk-mq-debugfs.h block: Replace zone_wlock debugfs entry with zone_wplugs entry 2024-04-17 08:44:03 -06:00
blk-mq-dma.c blk-mq: add a copyright notice to blk-mq-dma.c 2025-05-16 08:43:41 -06:00
blk-mq-sched.c block: fix potential deadlock while running nr_hw_queue update 2025-08-28 16:34:50 +02:00
blk-mq-sched.h block: fix potential deadlock while running nr_hw_queue update 2025-08-28 16:34:50 +02:00
blk-mq-sysfs.c block: protect hctx attributes/params using q->elevator_lock 2025-03-10 07:31:06 -06:00
blk-mq-tag.c block: remove unused parameter 2025-03-12 08:25:28 -06:00
blk-mq.c blk-mq: fix lockdep warning in __blk_mq_update_nr_hw_queues 2025-08-28 16:34:50 +02:00
blk-mq.h block: clean up blk_mq_in_flight_rw() 2025-05-10 16:11:21 +08: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 block: avoid cpu_hotplug_lock depedency on freeze_lock 2025-08-28 16:34:50 +02:00
blk-rq-qos.h block: validate QoS before calling __rq_qos_done_bio() 2025-09-04 16:55:39 +02:00
blk-settings.c block: avoid possible overflow for chunk_sectors check in blk_stack_limits() 2025-08-20 18:41:32 +02:00
blk-stat.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
blk-stat.h treewide: Switch/rename to timer_delete[_sync]() 2025-04-05 10:30:12 +02:00
blk-sysfs.c block: restore default wbt enablement 2025-08-28 16:34:25 +02:00
blk-throttle.c treewide, timers: Rename from_timer() to timer_container_of() 2025-06-08 09:07:37 +02:00
blk-throttle.h blk-throttle: Prevents the bps restricted io from entering the bps queue again 2025-05-13 12:08:27 -06:00
blk-timeout.c
blk-wbt.c for-6.16/block-20250523 2025-05-26 11:39:36 -07:00
blk-wbt.h blk-wbt: remove the separate write cache tracking 2023-12-26 09:28:10 -07:00
blk-zoned.c blk-zoned: Fix a lockdep complaint about recursive locking 2025-09-04 16:55:46 +02:00
blk.h block: fix potential deadlock while running nr_hw_queue update 2025-08-28 16:34:50 +02:00
bsg-lib.c block: remove unused parameter 'q' parameter in __blk_rq_map_sg() 2025-03-13 05:46:19 -06:00
bsg.c SCSI misc on 20230629 2023-06-30 11:57:07 -07:00
disk-events.c block: move bdev_mark_dead out of disk_check_media_change 2023-10-28 13:29:23 +02:00
early-lookup.c wrapper for access to ->bd_partno 2024-05-02 17:48:09 -04:00
elevator.c block: fix potential deadlock while running nr_hw_queue update 2025-08-28 16:34:50 +02:00
elevator.h block: fix lockdep warning caused by lock dependency in elv_iosched_store 2025-08-28 16:34:50 +02:00
fops.c block: don't silently ignore metadata for sync read/write 2025-09-19 16:37:26 +02:00
genhd.c block: fix kobject double initialization in add_disk 2025-08-20 18:41:33 +02:00
holder.c block: fix deadlock between bd_link_disk_holder and partition scan 2024-02-23 07:44:19 -07:00
ioctl.c block: fix race between set_blocksize and read paths 2025-04-23 13:58:06 -06:00
ioprio.c block: remove test of incorrect io priority level 2025-05-08 09:04:12 -06:00
Kconfig block: Remove obsolete configs BLK_MQ_{PCI,VIRTIO} 2025-05-14 05:43:56 -06:00
Kconfig.iosched
kyber-iosched.c block: move elevator queue allocation logic into blk_mq_init_sched 2025-08-28 16:34:50 +02:00
Makefile blk-mq: move the DMA mapping code to a separate file 2025-05-16 08:43:41 -06:00
mq-deadline.c block: move elevator queue allocation logic into blk_mq_init_sched 2025-08-28 16:34:50 +02:00
opal_proto.h block: sed-opal: handle empty atoms when parsing response 2024-02-16 15:52:45 -07:00
sed-opal.c block: sed-opal: add ioctl IOC_OPAL_SET_SID_PW 2024-10-22 08:16:40 -06:00
t10-pi.c for-6.15/block-20250322 2025-03-26 18:08:55 -07:00