blk-mq: don't fail allocating driver tag for stopped hw queue
authorJens Axboe <axboe@fb.com>
Wed, 1 Feb 2017 06:32:50 +0000 (23:32 -0700)
committerJens Axboe <axboe@fb.com>
Wed, 1 Feb 2017 06:32:50 +0000 (23:32 -0700)
commit12d70958a2e8d587acaa51dafd5d6620e00b7543
treebb5acd14a33deceefe2757d1f6ebfca5371280bd
parent7bf7d778620d83f14fcd92d0938fb97c7d78bf19
blk-mq: don't fail allocating driver tag for stopped hw queue

We rely on blk_mq_get_driver_tag() not failing if 'wait' is true,
but it currently fails in that case if the queue happens to be
stopped at the time of the call.

We don't need to check for stopped here, it's just assigning
the tag. If the queue is stopped, we'll handle it when
attempting to run the queue.

This fixes a stall/crash on flush intensive workloads, where
we proceed to process a flush that doesn't have a valid tag
assigned.

Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c