block: fix issue with calling blk_stop_queue() from the request_fn handler
When the queue work handler was converted to delayed work, the stopping was inadvertently made sync as well. Change this back to being async stop, using __cancel_delayed_work() instead of cancel_delayed_work(). Reported-by: Jeremy Fitzhardinge <jeremy@goop.org> Reported-by: Chris Mason <chris.mason@oracle.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
This commit is contained in:
Родитель
401a18e92c
Коммит
ad3d9d7ede
|
@ -271,7 +271,7 @@ EXPORT_SYMBOL(blk_start_queue);
|
|||
**/
|
||||
void blk_stop_queue(struct request_queue *q)
|
||||
{
|
||||
cancel_delayed_work(&q->delay_work);
|
||||
__cancel_delayed_work(&q->delay_work);
|
||||
queue_flag_set(QUEUE_FLAG_STOPPED, q);
|
||||
}
|
||||
EXPORT_SYMBOL(blk_stop_queue);
|
||||
|
|
Загрузка…
Ссылка в новой задаче