Mike Snitzer 7d9595d848 dm rq: fix the starting and stopping of blk-mq queues
Improve dm_stop_queue() to cancel any requeue_work.  Also, have
dm_start_queue() and dm_stop_queue() clear/set the QUEUE_FLAG_STOPPED
for the blk-mq request_queue.

On suspend dm_stop_queue() handles stopping the blk-mq request_queue
BUT: even though the hw_queues are marked BLK_MQ_S_STOPPED at that point
there is still a race that is allowing block/blk-mq.c to call ->queue_rq
against a hctx that it really shouldn't.  Add a check to
dm_mq_queue_rq() that guards against this rarity (albeit _not_
race-free).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: stable@vger.kernel.org # must patch dm.c on < 4.8 kernels
2016-08-02 16:21:36 -04:00
..
2016-06-07 13:41:38 -06:00
2016-06-07 13:41:38 -06:00
2014-01-14 23:23:03 -05:00
2016-07-01 10:53:21 -04:00
2016-07-28 17:38:16 -07:00
2016-06-07 13:41:38 -06:00
2016-07-20 17:37:01 -06:00
2016-06-07 13:41:38 -06:00
2016-07-28 17:38:16 -07:00
2016-07-28 17:38:16 -07:00
2016-07-20 23:49:50 -04:00
2016-07-28 17:38:16 -07:00
2016-07-20 17:37:01 -06:00
2016-07-28 17:38:16 -07:00
2016-07-20 23:49:49 -04:00
2016-01-20 13:52:20 -08:00
2015-08-13 12:31:57 -06:00