On Tue, May 22, 2018 at 08:36:27PM +0000, Bart Van Assche wrote: > > Have you noticed that if blk_mq_complete_request() encounters a request with > state MQ_RQ_TIMED_OUT that it doesn't call __blk_mq_complete_request()? I think > the code in blk_mq_complete_request() together with the above code guarantees > that __blk_mq_complete_request() is only called once per request generation. Okay, now to the BLK_EH_NOT_HANDLED case: that's supposedly the correct status to return if the driver knows blk_mq_complete_request() was called prior to returning from the timeout handler, so we need a similiar check there, right?