diff --git a/block/blk-mq.c b/block/blk-mq.c index b1c41ba518a6..b7da2f7ac60a 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -1710,8 +1710,11 @@ static bool blk_mq_handle_expired(struct request *rq, void *priv) { struct blk_expired_data *expired = priv; - if (blk_mq_req_expired(rq, expired)) + if (blk_mq_req_expired(rq, expired)) { blk_mq_rq_timed_out(rq); + /* If its timer has been started again, count the new deadline */ + blk_mq_req_expired(rq, expired); + } return true; }