diff mbox

[1/5] block: Warn if blk_queue_rq_timed_out() is called for a blk-mq queue

Message ID 20170823175633.12680-2-bart.vanassche@wdc.com (mailing list archive)
State New, archived
Headers show

Commit Message

Bart Van Assche Aug. 23, 2017, 5:56 p.m. UTC
The timeout handler set by blk_queue_rq_timed_out() is only used
in single queue mode. Calling this function for blk-mq drivers is
wrong. Hence issue a warning if this function is called by a blk-mq
driver.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Johannes Thumshirn <jthumshirn@suse.de>
---
 block/blk-settings.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Christoph Hellwig Aug. 23, 2017, 6:03 p.m. UTC | #1
On Wed, Aug 23, 2017 at 10:56:29AM -0700, Bart Van Assche wrote:
> The timeout handler set by blk_queue_rq_timed_out() is only used
> in single queue mode. Calling this function for blk-mq drivers is
> wrong. Hence issue a warning if this function is called by a blk-mq
> driver.

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
diff mbox

Patch

diff --git a/block/blk-settings.c b/block/blk-settings.c
index be1f115b538b..8559e9563c52 100644
--- a/block/blk-settings.c
+++ b/block/blk-settings.c
@@ -68,6 +68,7 @@  EXPORT_SYMBOL_GPL(blk_queue_rq_timeout);
 
 void blk_queue_rq_timed_out(struct request_queue *q, rq_timed_out_fn *fn)
 {
+	WARN_ON_ONCE(q->mq_ops);
 	q->rq_timed_out_fn = fn;
 }
 EXPORT_SYMBOL_GPL(blk_queue_rq_timed_out);