summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--block/blk-timeout.c34
1 files changed, 11 insertions, 23 deletions
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 49988a3ca85c..448745683d28 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -166,8 +166,15 @@ void blk_abort_request(struct request *req)
}
EXPORT_SYMBOL_GPL(blk_abort_request);
-static void __blk_add_timer(struct request *req,
- struct list_head *timeout_list)
+/**
+ * blk_add_timer - Start timeout timer for a single request
+ * @req: request that is about to start running.
+ *
+ * Notes:
+ * Each request has its own timer, and as it is added to the queue, we
+ * set up the timer. When the request completes, we cancel the timer.
+ */
+void blk_add_timer(struct request *req)
{
struct request_queue *q = req->q;
unsigned long expiry;
@@ -185,8 +192,8 @@ static void __blk_add_timer(struct request *req,
req->timeout = q->rq_timeout;
req->deadline = jiffies + req->timeout;
- if (timeout_list)
- list_add_tail(&req->timeout_list, timeout_list);
+ if (!q->mq_ops)
+ list_add_tail(&req->timeout_list, &req->q->timeout_list);
/*
* If the timer isn't already pending or this timeout is earlier
@@ -211,22 +218,3 @@ static void __blk_add_timer(struct request *req,
}
}
-
-/**
- * blk_add_timer - Start timeout timer for a single request
- * @req: request that is about to start running.
- *
- * Notes:
- * Each request has its own timer, and as it is added to the queue, we
- * set up the timer. When the request completes, we cancel the timer.
- */
-void blk_add_timer(struct request *req)
-{
- struct request_queue *q = req->q;
-
- if (q->mq_ops)
- __blk_add_timer(req, NULL);
- else
- __blk_add_timer(req, &req->q->timeout_list);
-}
-