It is nontrivial to derive from the blk-mq source code when blk_mq_tags.active_queues is decremented. Hence add a comment that explains this. Signed-off-by: Bart Van Assche <bart.vanassche@xxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Hannes Reinecke <hare@xxxxxxx> Cc: Johannes Thumshirn <jthumshirn@xxxxxxx> --- block/blk-mq.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index f84d145490bf..b86d2cafc355 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -834,6 +834,10 @@ static void blk_mq_timeout_work(struct work_struct *work) } else { struct blk_mq_hw_ctx *hctx; + /* + * All requests finished (latest request timeout) seconds ago, + * so mark each hctx as idle. + */ queue_for_each_hw_ctx(q, hctx, i) { /* the hctx may be unmapped, so check it here */ if (blk_mq_hw_queue_mapped(hctx)) -- 2.14.0