aboutsummaryrefslogtreecommitdiff
path: root/block/blk-timeout.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-11-11 09:40:18 +0100
committerIngo Molnar <mingo@elte.hu>2008-11-11 09:40:18 +0100
commite0cb4ebcd9e5b4ddd8216c20f54445c91b1fa4b9 (patch)
treed1c3b22b7e9f02fb56927da530da09c6ee7ce0b9 /block/blk-timeout.c
parenta309720c876d7ad2e224bfd1982c92ae4364c82e (diff)
parent45b86a96f17cb2900f291129b0e67287400e45b2 (diff)
Merge branch 'tracing/urgent' into tracing/ftrace
Conflicts: kernel/trace/trace.c
Diffstat (limited to 'block/blk-timeout.c')
-rw-r--r--block/blk-timeout.c20
1 files changed, 3 insertions, 17 deletions
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 972a63f848f..69185ea9fae 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -75,14 +75,7 @@ void blk_delete_timer(struct request *req)
{
struct request_queue *q = req->q;
- /*
- * Nothing to detach
- */
- if (!q->rq_timed_out_fn || !req->deadline)
- return;
-
list_del_init(&req->timeout_list);
-
if (list_empty(&q->timeout_list))
del_timer(&q->timeout);
}
@@ -142,7 +135,7 @@ void blk_rq_timed_out_timer(unsigned long data)
}
if (next_set && !list_empty(&q->timeout_list))
- mod_timer(&q->timeout, round_jiffies(next));
+ mod_timer(&q->timeout, round_jiffies_up(next));
spin_unlock_irqrestore(q->queue_lock, flags);
}
@@ -198,17 +191,10 @@ void blk_add_timer(struct request *req)
/*
* If the timer isn't already pending or this timeout is earlier
- * than an existing one, modify the timer. Round to next nearest
+ * than an existing one, modify the timer. Round up to next nearest
* second.
*/
- expiry = round_jiffies(req->deadline);
-
- /*
- * We use ->deadline == 0 to detect whether a timer was added or
- * not, so just increase to next jiffy for that specific case
- */
- if (unlikely(!req->deadline))
- req->deadline = 1;
+ expiry = round_jiffies_up(req->deadline);
if (!timer_pending(&q->timeout) ||
time_before(expiry, q->timeout.expires))