On Thu, Apr 4, 2019 at 10:54 AM Dongli Zhang <dongli.zhang@xxxxxxxxxx> wrote: > > We would never be able to sort the list if we first reset plug->rq_count > which is used in conditional check later. > > Fixes: ce5b009cff19 ("block: improve logic around when to sort a plug list") > Signed-off-by: Dongli Zhang <dongli.zhang@xxxxxxxxxx> > --- > block/blk-mq.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/block/blk-mq.c b/block/blk-mq.c > index 3ff3d7b..c162718 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -1711,11 +1711,12 @@ void blk_mq_flush_plug_list(struct blk_plug *plug, bool from_schedule) > unsigned int depth; > > list_splice_init(&plug->mq_list, &list); > - plug->rq_count = 0; > > if (plug->rq_count > 2 && plug->multiple_queues) > list_sort(NULL, &list, plug_rq_cmp); > > + plug->rq_count = 0; > + > this_q = NULL; > this_hctx = NULL; > this_ctx = NULL; > -- > 2.7.4 > Reviewed-by: Ming Lei <ming.lei@xxxxxxxxxx> Thanks, Ming Lei