1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/block
Christoph Hellwig 1e1a9cecfa block: force noio scope in blk_mq_freeze_queue
When block drivers or the core block code perform allocations with a
frozen queue, this could try to recurse into the block device to
reclaim memory and deadlock.  Thus all allocations done by a process
that froze a queue need to be done without __GFP_IO and __GFP_FS.
Instead of tying to track all of them down, force a noio scope as
part of freezing the queue.

Note that nvme is a bit of a mess here due to the non-owner freezes,
and they will be addressed separately.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20250131120352.1315351-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2025-01-31 07:20:08 -07:00
..
partitions partitions: ldm: remove the initial kernel-doc notation 2025-01-13 07:47:19 -07:00
badblocks.c badblocks: avoid checking invalid range in badblocks_check() 2023-12-23 18:38:08 -07:00
bdev.c block/bdev: use helper for max block size check 2024-12-18 07:22:30 -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 for-6.14/block-20250118 2025-01-20 19:38:46 -08:00
bfq-iosched.h block, bfq: remove bfq_log_bfqg() 2024-09-10 16:32:09 -06:00
bfq-wf2q.c block, bfq: inject I/O to underutilized actuators 2023-01-29 15:18:33 -07:00
bio-integrity.c block: add support to pass user meta buffer 2024-12-23 08:17:17 -07:00
bio.c block: Don't trim an atomic write 2025-01-17 13:13:55 -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 block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-cgroup.h blk-cgroup: fix kernel-doc warnings in header file 2025-01-13 07:46:55 -07:00
blk-core.c block: get rid of request queue ->sysfs_dir_lock 2025-01-29 07:16:47 -07:00
blk-crypto-fallback.c block: Rework bio_split() return value 2024-11-11 08:35:46 -07:00
blk-crypto-internal.h blk-crypto: remove blk_crypto_insert_cloned_request() 2023-03-16 09:35:09 -06:00
blk-crypto-profile.c blk-crypto: use dynamic lock class for blk_crypto_profile::lock 2023-07-05 16:36:12 -06:00
blk-crypto-sysfs.c block: make kobj_type structures constant 2023-02-09 09:38:16 -07:00
blk-crypto.c blk-crypto: make blk_crypto_evict_key() more robust 2023-03-16 09:35:09 -06:00
blk-flush.c for-6.11/block-20240710 2024-07-15 14:20:22 -07: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 for-6.14/io_uring-20250119 2025-01-20 20:27:33 -08: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 block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-iolatency.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-ioprio.c blk-ioprio: remove per-disk structure 2024-07-28 16:47:51 -06: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: remove blk_rq_bio_prep 2025-01-04 15:27:35 -07:00
blk-merge.c block: add a dma mapping iterator 2025-01-06 07:37:11 -07: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: simplify tag allocation policy selection 2025-01-06 07:37:41 -07: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-sched.c block: remove BLK_MQ_F_SHOULD_MERGE 2024-12-23 08:17:23 -07:00
blk-mq-sched.h blk-mq: make sure elevator callbacks aren't called for passthrough request 2023-05-18 19:42:54 -06:00
blk-mq-sysfs.c block: fix nr_hw_queue update racing with disk addition/removal 2025-01-29 07:16:47 -07:00
blk-mq-tag.c block: simplify tag allocation policy selection 2025-01-06 07:37:41 -07:00
blk-mq.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-mq.h block: don't update BLK_FEAT_POLL in __blk_mq_update_nr_hw_queues 2025-01-10 07:29:23 -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 block: Remove unused blk_pm_*() function definitions 2021-02-22 06:33:48 -07:00
blk-rq-qos.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-rq-qos.h block: skip QUEUE_FLAG_STATS and rq-qos for passthrough io 2023-12-01 18:29:18 -07:00
blk-settings.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-stat.c blk-throttle: remove CONFIG_BLK_DEV_THROTTLING_LOW 2024-05-09 09:44:55 -06:00
blk-stat.h block: delete redundant function declaration 2024-05-27 13:58:06 -06:00
blk-sysfs.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-throttle.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk-throttle.h blk-throttle: remove last_low_overflow_time 2024-09-10 16:31:41 -06:00
blk-timeout.c block: blk-timeout: delete duplicated word 2020-07-31 16:29:47 -06:00
blk-wbt.c blk-wbt: don't throttle swap writes in direct reclaim 2024-07-01 06:51:53 -06:00
blk-wbt.h blk-wbt: remove the separate write cache tracking 2023-12-26 09:28:10 -07:00
blk-zoned.c block: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
blk.h block: limit disk max sectors to (LLONG_MAX >> 9) 2025-01-15 15:46:56 -07:00
bounce.c block: split integrity support out of bio.h 2024-07-03 10:21:15 -06:00
bsg-lib.c block: remove BLK_MQ_F_NO_SCHED 2025-01-06 07:37:41 -07: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: force noio scope in blk_mq_freeze_queue 2025-01-31 07:20:08 -07:00
elevator.h elevator: Enable const sysfs attributes 2025-01-02 13:20:29 -07:00
fops.c block: don't revert iter for -EIOCBQUEUED 2025-01-23 06:18:41 -07:00
genhd.c block: limit disk max sectors to (LLONG_MAX >> 9) 2025-01-15 15:46:56 -07: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: implement async io_uring discard cmd 2024-09-11 10:45:28 -06:00
ioprio.c block: move __get_task_ioprio() into header file 2024-01-08 12:27:39 -07:00
Kconfig block: remove the blk_integrity_profile structure 2024-06-14 10:20:06 -06:00
Kconfig.iosched block: Default to use cgroup support for BFQ 2023-01-30 09:42:42 -07:00
kyber-iosched.c kyber: constify sysfs attributes 2025-01-02 13:20:29 -07:00
Makefile blk-mq: remove unused queue mapping helpers 2024-12-23 08:17:23 -07:00
mq-deadline.c block: mq-deadline: Constify sysfs attributes 2025-01-02 13:20:29 -07: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 move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00