Message ID | 20180622201809.25519-1-bart.vanassche@wdc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 6/22/18 2:18 PM, Bart Van Assche wrote: > Make sure that RQF_TIMED_OUT is cleared when a request is reused > after a block driver timeout handler has returned BLK_EH_DONE. Thanks Bart, I think this looks good. I'm going to try and take some time to go over the timeout parts, to ensure that we're good for 4.18.
diff --git a/block/blk-mq.c b/block/blk-mq.c index b97cb6fed3bd..8c00fcd300b9 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -785,7 +785,6 @@ static void blk_mq_rq_timed_out(struct request *req, bool reserved) WARN_ON_ONCE(ret != BLK_EH_RESET_TIMER); } - req->rq_flags &= ~RQF_TIMED_OUT; blk_add_timer(req); } diff --git a/block/blk-timeout.c b/block/blk-timeout.c index c788255b18ad..d72e9071b17f 100644 --- a/block/blk-timeout.c +++ b/block/blk-timeout.c @@ -213,6 +213,7 @@ void blk_add_timer(struct request *req) if (!req->timeout) req->timeout = q->rq_timeout; + req->rq_flags &= ~RQF_TIMED_OUT; blk_rq_set_deadline(req, jiffies + req->timeout); /*
Make sure that RQF_TIMED_OUT is cleared when a request is reused after a block driver timeout handler has returned BLK_EH_DONE. Fixes: da6612673988 ("blk-mq: don't time out requests again that are in the timeout handler") Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Jianchao Wang <jianchao.w.wang@oracle.com> Cc: Andrew Randrianasulu <randrianasulu@gmail.com> --- block/blk-mq.c | 1 - block/blk-timeout.c | 1 + 2 files changed, 1 insertion(+), 1 deletion(-)