Messages in this thread | | | From | Stefan Haberland <> | Subject | blk-mq timeout question | Date | Fri, 7 Jul 2017 15:45:44 +0200 |
| |
While changing the DASD device driver to use the blk-mq interfaces I found the following unexpected behavior:
In case of a timeout our complete callback is never called. Here is the sequence of events as I understood:
- timeout occurs - blk_mq_check_expired() calls and checks blk_mark_rq_complete() - our .timeout callback is called which returns BLK_EH_NOT_HANDLED and schedules delayed work - our worker calls blk_mq_complete_request() - this also checks blk_mark_rq_complete() and therefore never calls our complete callback
Question: Should blk_clear_rq_complete() also be called for the BLK_EH_NOT_HANDLED case?
Regards, Stefan
| |