linux/block
Nilay Shroff 3efe7571c3 block: protect nr_requests update using q->elevator_lock
The sysfs attribute nr_requests could be simultaneously updated from
elevator switch/update or nr_hw_queue update code path. The update to
nr_requests for each of those code paths runs holding q->elevator_lock.
So we should protect access to sysfs attribute nr_requests using q->
elevator_lock instead of q->sysfs_lock.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Nilay Shroff <nilay@linux.ibm.com>
Link: https://lore.kernel.org/r/20250304102551.2533767-6-nilay@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2025-03-10 07:30:18 -06:00
..
partitions block: Remove commented out code 2025-02-21 17:12:21 -07:00
badblocks.c badblocks: use sector_t instead of int to avoid truncation of badblocks length 2025-03-06 08:04:52 -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-auto.c block: split struct bio_integrity_payload 2025-03-03 11:17:52 -07:00
bio-integrity.c block: split struct bio_integrity_payload 2025-03-03 11:17:52 -07:00
bio.c block: split struct bio_integrity_payload 2025-03-03 11:17:52 -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-6.14-20250131 2025-01-31 11:49:30 -08: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: introduce a dedicated lock for protecting queue elevator updates 2025-03-10 07:30:18 -06:00
blk-crypto-fallback.c blk-crypto: add basic hardware-wrapped key support 2025-02-10 09:54:19 -07: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: add ioctls to create and prepare hardware-wrapped keys 2025-02-10 09:54:19 -07: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 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: introduce init_wait_func() 2025-02-11 13:04:11 -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: introduce a dedicated lock for protecting queue elevator updates 2025-03-10 07:30:18 -06: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: refactor rq_qos_wait() 2025-02-11 13:04:11 -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: remove q->sysfs_lock for attributes which don't need it 2025-03-10 07:30:18 -06: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: protect nr_requests update using q->elevator_lock 2025-03-10 07:30:18 -06:00
blk-throttle.c blk-throttle: carry over directly 2025-03-05 16:24:40 -07:00
blk-throttle.h blk-throttle: carry over directly 2025-03-05 16:24:40 -07:00
blk-timeout.c block: blk-timeout: delete duplicated word 2020-07-31 16:29:47 -06:00
blk-wbt.c blk-wbt: Cleanup a comment in wb_timer_fn 2025-02-25 08:43:52 -07: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: split struct bio_integrity_payload 2025-03-03 11:17:52 -07:00
bounce.c block: mark bounce buffering as incompatible with integrity 2025-03-03 11:17:52 -07: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: introduce a dedicated lock for protecting queue elevator updates 2025-03-10 07:30:18 -06:00
elevator.h block: introduce a dedicated lock for protecting queue elevator updates 2025-03-10 07:30:18 -06:00
fops.c block: don't revert iter for -EIOCBQUEUED 2025-01-23 06:18:41 -07:00
genhd.c block: introduce a dedicated lock for protecting queue elevator updates 2025-03-10 07:30:18 -06:00
holder.c block: fix deadlock between bd_link_disk_holder and partition scan 2024-02-23 07:44:19 -07:00
ioctl.c blk-crypto: add ioctls to create and prepare hardware-wrapped keys 2025-02-10 09:54:19 -07: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 block: move the block layer auto-integrity code into a new file 2025-03-03 11:17:52 -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 block: split struct bio_integrity_payload 2025-03-03 11:17:52 -07:00