Re: [PATCH v13] blk-mq: Rework blk-mq timeout handling again

Keith Busch
2018-05-22T20:26:58Z

On Tue, May 22, 2018 at 01:38:06PM -0600, Jens Axboe wrote:
> I guess it would be cleaner to actually do the transition, in
> blk_mq_rq_timed_out():
>
> case BLK_EH_HANDLED:
> if (blk_mq_change_rq_state(req, MQ_RQ_TIMED_OUT,
> MQ_RQ_COMPLETE))
> __blk_mq_complete_request(req);
> break;
>
> This works for me.

Works for me as well on manual fault injection tests.

I think this change above goes back to Christoph's point earlier on usage
of BLK_EH_HANDLED. Is the driver supposed to return BLK_EH_NOT_HANDLED
when the driver actually knows the request has been completed before
returning the status?