On Sat, 2017-08-05 at 14:56 +0800, Ming Lei wrote: > +static inline bool blk_mq_has_dispatch_rqs(struct blk_mq_hw_ctx *hctx) > +{ > + return !list_empty_careful(&hctx->dispatch); > +} > + > +static inline void blk_mq_add_rq_to_dispatch(struct blk_mq_hw_ctx *hctx, > + struct request *rq) > +{ > + spin_lock(&hctx->lock); > + list_add(&rq->queuelist, &hctx->dispatch); > + blk_mq_hctx_set_dispatch_busy(hctx); > + spin_unlock(&hctx->lock); > +} > + > +static inline void blk_mq_add_list_to_dispatch(struct blk_mq_hw_ctx *hctx, > + struct list_head *list) > +{ > + spin_lock(&hctx->lock); > + list_splice_init(list, &hctx->dispatch); > + blk_mq_hctx_set_dispatch_busy(hctx); > + spin_unlock(&hctx->lock); > +} > + > +static inline void blk_mq_add_list_to_dispatch_tail(struct blk_mq_hw_ctx *hctx, > + struct list_head *list) > +{ > + spin_lock(&hctx->lock); > + list_splice_tail_init(list, &hctx->dispatch); > + blk_mq_hctx_set_dispatch_busy(hctx); > + spin_unlock(&hctx->lock); > +} > + > +static inline void blk_mq_take_list_from_dispatch(struct blk_mq_hw_ctx *hctx, > + struct list_head *list) > +{ > + spin_lock(&hctx->lock); > + list_splice_init(&hctx->dispatch, list); > + spin_unlock(&hctx->lock); > +} Same comment for this patch: these helper functions are so short that I'm not sure it is useful to introduce these helper functions. Bart.