block: protect wbt_lat_usec using q->elevator_lock
authorNilay Shroff <nilay@linux.ibm.com>
Tue, 4 Mar 2025 10:22:35 +0000 (15:52 +0530)
committerJens Axboe <axboe@kernel.dk>
Mon, 10 Mar 2025 13:30:18 +0000 (07:30 -0600)
commit245618f8e45ff4f79327627b474b563da71c2c75
tree83cf4a7035fd4b8f0312edfab3263d7e568da9aa
parent3efe7571c3ae2b6481253a2616c2bb3fbadd503b
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>
block/blk-iocost.c
block/blk-sysfs.c
include/linux/blkdev.h