Skip to content

Commit e766668

Browse files
Ming Leisnitm
authored andcommitted
dm rq: don't call blk_mq_queue_stopped() in dm_stop_queue()
dm_stop_queue() only uses blk_mq_quiesce_queue() so it doesn't formally stop the blk-mq queue; therefore there is no point making the blk_mq_queue_stopped() check -- it will never be stopped. In addition, even though dm_stop_queue() actually tries to quiesce hw queues via blk_mq_quiesce_queue(), checking with blk_queue_quiesced() to avoid unnecessary queue quiesce isn't reliable because: the QUEUE_FLAG_QUIESCED flag is set before synchronize_rcu() and dm_stop_queue() may be called when synchronize_rcu() from another blk_mq_quiesce_queue() is in-progress. Fixes: 7b17c2f ("dm: Fix a race condition related to stopping and starting queues") Signed-off-by: Ming Lei <[email protected]> Signed-off-by: Mike Snitzer <[email protected]>
1 parent 0c248ea commit e766668

File tree

1 file changed

+0
-3
lines changed

1 file changed

+0
-3
lines changed

drivers/md/dm-rq.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,9 +70,6 @@ void dm_start_queue(struct request_queue *q)
7070

7171
void dm_stop_queue(struct request_queue *q)
7272
{
73-
if (blk_mq_queue_stopped(q))
74-
return;
75-
7673
blk_mq_quiesce_queue(q);
7774
}
7875

0 commit comments

Comments
 (0)