Message ID | a0733adf-065e-2099-3850-cb1c55df1e35@sandisk.com (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
On 10/27/2016 12:54 AM, Bart Van Assche wrote: > Instead of manipulating both QUEUE_FLAG_STOPPED and BLK_MQ_S_STOPPED > in the dm start and stop queue functions, only manipulate the latter > flag. Change blk_queue_stopped() tests into blk_mq_queue_stopped(). > > Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > Cc: Mike Snitzer <snitzer@redhat.com> > --- > drivers/md/dm-rq.c | 18 ++---------------- > 1 file changed, 2 insertions(+), 16 deletions(-) > > diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c > index fbd37b4..d47a504 100644 > --- a/drivers/md/dm-rq.c > +++ b/drivers/md/dm-rq.c > @@ -75,12 +75,6 @@ static void dm_old_start_queue(struct request_queue *q) > > static void dm_mq_start_queue(struct request_queue *q) > { > - unsigned long flags; > - > - spin_lock_irqsave(q->queue_lock, flags); > - queue_flag_clear(QUEUE_FLAG_STOPPED, q); > - spin_unlock_irqrestore(q->queue_lock, flags); > - > blk_mq_start_stopped_hw_queues(q, true); > blk_mq_kick_requeue_list(q); > } > @@ -105,16 +99,8 @@ static void dm_old_stop_queue(struct request_queue *q) > > static void dm_mq_stop_queue(struct request_queue *q) > { > - unsigned long flags; > - > - spin_lock_irqsave(q->queue_lock, flags); > - if (blk_queue_stopped(q)) { > - spin_unlock_irqrestore(q->queue_lock, flags); > + if (blk_mq_queue_stopped(q)) > return; > - } > - > - queue_flag_set(QUEUE_FLAG_STOPPED, q); > - spin_unlock_irqrestore(q->queue_lock, flags); > > /* Avoid that requeuing could restart the queue. */ > blk_mq_cancel_requeue_work(q); > @@ -341,7 +327,7 @@ static void __dm_mq_kick_requeue_list(struct request_queue *q, unsigned long mse > unsigned long flags; > > spin_lock_irqsave(q->queue_lock, flags); > - if (!blk_queue_stopped(q)) > + if (!blk_mq_queue_stopped(q)) > blk_mq_delay_kick_requeue_list(q, msecs); > spin_unlock_irqrestore(q->queue_lock, flags); > } > Ah. Right. That answers my previous question. Reviewed-by: Hannes Reinecke <hare@suse.com> Cheers, Hannes
On Wed, Oct 26, 2016 at 03:54:07PM -0700, Bart Van Assche wrote: > Instead of manipulating both QUEUE_FLAG_STOPPED and BLK_MQ_S_STOPPED > in the dm start and stop queue functions, only manipulate the latter > flag. Change blk_queue_stopped() tests into blk_mq_queue_stopped(). > > Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> Looks good, Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
On Wed, Oct 26 2016 at 6:54pm -0400, Bart Van Assche <bart.vanassche@sandisk.com> wrote: > Instead of manipulating both QUEUE_FLAG_STOPPED and BLK_MQ_S_STOPPED > in the dm start and stop queue functions, only manipulate the latter > flag. Change blk_queue_stopped() tests into blk_mq_queue_stopped(). > > Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> > Reviewed-by: Christoph Hellwig <hch@lst.de> > Cc: Mike Snitzer <snitzer@redhat.com> Acked-by: Mike Snitzer <snitzer@redhat.com> -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/md/dm-rq.c b/drivers/md/dm-rq.c index fbd37b4..d47a504 100644 --- a/drivers/md/dm-rq.c +++ b/drivers/md/dm-rq.c @@ -75,12 +75,6 @@ static void dm_old_start_queue(struct request_queue *q) static void dm_mq_start_queue(struct request_queue *q) { - unsigned long flags; - - spin_lock_irqsave(q->queue_lock, flags); - queue_flag_clear(QUEUE_FLAG_STOPPED, q); - spin_unlock_irqrestore(q->queue_lock, flags); - blk_mq_start_stopped_hw_queues(q, true); blk_mq_kick_requeue_list(q); } @@ -105,16 +99,8 @@ static void dm_old_stop_queue(struct request_queue *q) static void dm_mq_stop_queue(struct request_queue *q) { - unsigned long flags; - - spin_lock_irqsave(q->queue_lock, flags); - if (blk_queue_stopped(q)) { - spin_unlock_irqrestore(q->queue_lock, flags); + if (blk_mq_queue_stopped(q)) return; - } - - queue_flag_set(QUEUE_FLAG_STOPPED, q); - spin_unlock_irqrestore(q->queue_lock, flags); /* Avoid that requeuing could restart the queue. */ blk_mq_cancel_requeue_work(q); @@ -341,7 +327,7 @@ static void __dm_mq_kick_requeue_list(struct request_queue *q, unsigned long mse unsigned long flags; spin_lock_irqsave(q->queue_lock, flags); - if (!blk_queue_stopped(q)) + if (!blk_mq_queue_stopped(q)) blk_mq_delay_kick_requeue_list(q, msecs); spin_unlock_irqrestore(q->queue_lock, flags); }