mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 05:31:08 -04:00
blk-mq: Fix timeout handling in case the timeout handler returns BLK_EH_DONE
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: da66126739 ("blk-mq: don't time out requests again that are in the timeout handler")
Signed-off-by: Bart Van Assche <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Jianchao Wang <[email protected]>
Cc: Andrew Randrianasulu <[email protected]>
Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
1 parent
3ee7e8697d
commit
f5e350f021
2 files changed
+1
-1
No files matched your search
@@ -781,7 +781,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);
|
||||
}
|
||||
|
||||
|
||||
@@ -210,6 +210,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);
|
||||
|
||||
/*
|
||||
|
||||
Reference in new issue
Block a user