summaryrefslogtreecommitdiff
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
authorNilay Shroff <nilay@linux.ibm.com>2025-03-04 15:52:35 +0530
committerJens Axboe <axboe@kernel.dk>2025-03-10 07:30:18 -0600
commit245618f8e45ff4f79327627b474b563da71c2c75 (patch)
tree83cf4a7035fd4b8f0312edfab3263d7e568da9aa /include/linux/blkdev.h
parent3efe7571c3ae2b6481253a2616c2bb3fbadd503b (diff)
block: protect wbt_lat_usec using q->elevator_lock
The wbt latency and state could be updated while initializing the elevator or exiting the elevator. It could be also updated while configuring IO latency QoS parameters using cgroup. The elevator code path is now protected with q->elevator_lock. So we should protect the access to sysfs attribute wbt_lat_usec using q->elevator _lock instead of q->sysfs_lock. White we're at it, also protect ioc_qos_write(), which configures wbt parameters via cgroup, using q->elevator_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-7-nilay@linux.ibm.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 3e66ad016a23..0ee3b5c9388e 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -563,8 +563,8 @@ struct request_queue {
/*
* Protects against I/O scheduler switching, particularly when
* updating q->elevator. Since the elevator update code path may
- * also modify q->nr_requests, this lock also protects the sysfs
- * attribute nr_requests.
+ * also modify q->nr_requests and wbt latency, this lock also
+ * protects the sysfs attributes nr_requests and wbt_lat_usec.
* To ensure proper locking order during an elevator update, first
* freeze the queue, then acquire ->elevator_lock.
*/