blk-mq: blk_mq_try_issue_directly() should lookup hardware queue
authorJens Axboe <axboe@fb.com>
Fri, 11 Nov 2016 19:24:46 +0000 (12:24 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 11 Nov 2016 19:24:46 +0000 (12:24 -0700)
commit066a4a73cee9a44a906b98825e70c47de5bd8b5c
tree046df5fb6e86118cb69dbb7207f2877ae9916080
parent87760e5eef359788047d6fd54fc12eec74ce0d27
blk-mq: blk_mq_try_issue_directly() should lookup hardware queue

A previous commit changed this to pass in the hardware queue, but
it was using the wrong hardware queue. Hence a request that was
allocated on one hardware queue ended up being issued on another
one, and that caused IO timeouts and oopses on some drivers. Since
the request holds hardware queue private resources, like a tag,
we can't just issue it on a different hardware queue.

Fixes: 2253efc850c4 ("blk-mq: Move more code into blk_mq_direct_issue_request()")
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c