mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 21:21:09 -04:00
scsi: Remove a blk_mq_run_hw_queues() call
blk_mq_kick_requeue_list() calls blk_mq_run_hw_queues() asynchronously. Leave out the direct blk_mq_run_hw_queues() call. This patch causes scsi_run_queue() to call blk_mq_run_hw_queues() asynchronously instead of synchronously. Since scsi_run_queue() is not called from the hot I/O submission path, this patch does not affect the hot path. This patch prepares for allowing blk_mq_run_hw_queue() to sleep if BLK_MQ_F_BLOCKING has been set. scsi_run_queue() may be called from atomic context and must not sleep. Hence the removal of the blk_mq_run_hw_queues(q, false) call. See also scsi_unblock_requests(). Cc: "Martin K. Petersen" <[email protected]> Signed-off-by: Bart Van Assche <[email protected]> Reviewed-by: "Martin K. Petersen" <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
committed by
Jens Axboe
parent
b5ca9acff5
commit
d42e2e3448
@@ -447,8 +447,8 @@ static void scsi_run_queue(struct request_queue *q)
|
||||
if (!list_empty(&sdev->host->starved_list))
|
||||
scsi_starved_list_run(sdev->host);
|
||||
|
||||
/* Note: blk_mq_kick_requeue_list() runs the queue asynchronously. */
|
||||
blk_mq_kick_requeue_list(q);
|
||||
blk_mq_run_hw_queues(q, false);
|
||||
}
|
||||
|
||||
void scsi_requeue_run_queue(struct work_struct *work)
|
||||
|
||||
Reference in New Issue
Block a user