block: handle blk_pm_resume_request() requests in blk_execute_rq_nowait()
Subsystems (2)
PATCH 1/1 block: handle blk_pm_resume_request() requests in blk_execute_rq_nowait()
For blk_pm_resume_request() requests (which are used only by IDE subsystem currently) the queue is stopped so we need to call ->request_fn explicitly.
Thanks to:
- Rafael for reporting/bisecting the bug
- Borislav/Rafael for testing the fix
This is a preparation for converting IDE to use blk_execute_rq().
Cc FUJITA Tomonori <[email protected]>
Cc Borislav Petkov <[email protected]>
Cc Jens Axboe <[email protected]>
Cc "Rafael J. Wysocki" <[email protected]>
Signed-off-by Bartlomiej Zolnierkiewicz <[email protected]>
---
goes before "ide: convert ide_do_drive_cmd path to use blk_execute_rq" patch in IDE tree
block/blk-exec.c | 3 +++ 1 file changed, 3 insertions(+)
block/blk-exec.c +3 -0
@@ -58,6 +58,9 @@ void blk_execute_rq_nowait(struct requesspin_lock_irq (q->queue_lock);__elv_add_request (q, rq, where,1 );__generic_unplug_device (q); +/* the queue is stopped so it won't be plugged+unplugged */ +if (blk_pm_resume_request (rq)) + q->request_fn (q);spin_unlock_irq (q->queue_lock); }EXPORT_SYMBOL_GPL (blk_execute_rq_nowait);