mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 17:57:38 -04:00
block, bfq: don't grab queue_lock to initialize bfq
The request_queue is frozen and quiesced while the elevator init_sched() method runs, so queue_lock is not needed for BFQ cgroup initialization. Signed-off-by: Yu Kuai <yukuai@fygo.io> Link: https://patch.msgid.link/1965073ea20f33114a8d903816b986e483b9bb34.1780621988.git.yukuai@fygo.io Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@@ -7204,10 +7204,7 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_queue *eq)
|
||||
return -ENOMEM;
|
||||
|
||||
eq->elevator_data = bfqd;
|
||||
|
||||
spin_lock_irq(&q->queue_lock);
|
||||
q->elevator = eq;
|
||||
spin_unlock_irq(&q->queue_lock);
|
||||
|
||||
/*
|
||||
* Our fallback bfqq if bfq_find_alloc_queue() runs into OOM issues.
|
||||
@@ -7240,7 +7237,6 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_queue *eq)
|
||||
* If the disk supports multiple actuators, copy independent
|
||||
* access ranges from the request queue structure.
|
||||
*/
|
||||
spin_lock_irq(&q->queue_lock);
|
||||
if (ia_ranges) {
|
||||
/*
|
||||
* Check if the disk ia_ranges size exceeds the current bfq
|
||||
@@ -7266,7 +7262,6 @@ static int bfq_init_queue(struct request_queue *q, struct elevator_queue *eq)
|
||||
bfqd->sector[0] = 0;
|
||||
bfqd->nr_sectors[0] = get_capacity(q->disk);
|
||||
}
|
||||
spin_unlock_irq(&q->queue_lock);
|
||||
|
||||
INIT_LIST_HEAD(&bfqd->dispatch);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user