mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
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>
This commit is contained in:
@@ -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.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user