dm: fix a couple locking issues with use of block interfaces
authorMike Snitzer <snitzer@redhat.com>
Sat, 20 Feb 2016 05:38:47 +0000 (00:38 -0500)
committerMike Snitzer <snitzer@redhat.com>
Tue, 23 Feb 2016 03:33:09 +0000 (22:33 -0500)
commit818c5f3bef750eb5998b468f84391e4d656b97ed
tree870376e3cae6542564325980b7c0d11b1f2b0345
parent1c357a1e86a4227a6b6059f2de118ae47659cebc
dm: fix a couple locking issues with use of block interfaces

old_stop_queue() was checking blk_queue_stopped() without holding the
q->queue_lock.

dm_requeue_original_request() needed to check blk_queue_stopped(), with
q->queue_lock held, before calling blk_mq_kick_requeue_list().  And a
side-effect of that change is start_queue() must also call
blk_mq_kick_requeue_list().

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm.c