On Mon, May 28, 2018 at 01:44:25PM +0200, Christoph Hellwig wrote: > On Thu, May 24, 2018 at 12:45:15PM +0800, Ming Lei wrote: > > This change should have been done after '[PATCH 13/14] blk-mq: Remove > > generation seqeunce', otherwise the timed-out request won't be completed > > by nvme_cancel_request() at all because we always marked this request as > > 'COMPLETE' before calling .timeout(). > > Yes. Or we should start out with reverting the whole series introducing > the gstate. I think it has shown to create much more problems than it > solved, and starting from a clean state without it will allow us to > iterate much saner. It may not help for this case by reverting the series introducing the gstate. This behaviour has been used from the beginning, such as, the code becomes the following after the revert: if (!blk_mark_rq_complete(rq)) blk_mq_rq_timed_out(rq, reserved); Given the patch 13("blk-mq: Remove generation seqeunce") is the 1st one to change the behaviour, we should put this patch and other related ones after patch 13 for avoiding to break 'git bisect'. Thanks, Ming