On Sat, Sep 30, 2017 at 06:27:17PM +0800, Ming Lei wrote: > This function is introduced for dequeuing request > from sw queue so that we can dispatch it in > scheduler's way. > > More importantly, some SCSI devices may set > q->queue_depth, which is a per-request_queue limit, > and applied on pending I/O from all hctxs. This > function is introduced for avoiding to dequeue too > many requests from sw queue when ->dispatch isn't > flushed completely. Weird commit log formatting, please use your 70+ chacters to format the text. > @@ -882,6 +882,44 @@ void blk_mq_flush_busy_ctxs(struct blk_mq_hw_ctx *hctx, struct list_head *list) > } > EXPORT_SYMBOL_GPL(blk_mq_flush_busy_ctxs); > > +struct dispatch_rq_data { > + struct blk_mq_hw_ctx *hctx; > + struct request *rq; > +}; > + > +static bool dispatch_rq_from_ctx(struct sbitmap *sb, unsigned int bitnr, void *data) Overly long line. But except for that this looks ok to me except for the fact that you just add an unused function.