On Tue, 2017-09-19 at 11:07 -0400, Keith Busch wrote:
> The problem is when blk-mq's timeout handler prevents the request from
> completing, and doesn't leave any indication the driver requested to
> complete it. Who is responsible for completing that request now?

Hello Keith,

My understanding is that block drivers are responsible for completing timed
out requests by using one of the following approaches:
* By returning BLK_EH_HANDLED or BLK_EH_RESET_TIMER from inside the timeout
  handler.
* By returning BLK_EH_NOT_HANDLED and by calling blk_mq_end_request() or
  __blk_mq_end_request() for the request that timed out.

Bart. 

Reply via email to