On Wed, Jan 11, 2023 at 09:01:53PM +0800, Kemeng Shi wrote: > We need only to explicitly commit in two error cases: > -did not queue everything initially scheduled to queue > -the last attempt to queue a request failed > (see comment of blk_mq_commit_rqs for more details). > Both cases can be checked with ret of last request which breaks list walk. > Remove unnecessary error count and unnecessary commit triggered by error > which is not covered by cases described above. > > Signed-off-by: Kemeng Shi <shikemeng@xxxxxxxxxxxxxxx> > --- > block/blk-mq.c | 14 ++++---------- > 1 file changed, 4 insertions(+), 10 deletions(-) > > diff --git a/block/blk-mq.c b/block/blk-mq.c > index 98f6003474f2..c6c84f44c7a6 100644 > --- a/block/blk-mq.c > +++ b/block/blk-mq.c > @@ -2706,11 +2706,10 @@ static void blk_mq_plug_issue_direct(struct blk_plug *plug) > struct blk_mq_hw_ctx *hctx = NULL; > struct request *rq; > int queued = 0; > - int errors = 0; > + blk_status_t ret; I think we need to initialize this to BLK_STS_OK here. Otherwise looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx>