summaryrefslogtreecommitdiffstats
path: root/block/blk-timeout.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@fb.com>2014-05-30 23:41:39 +0200
committerJens Axboe <axboe@fb.com>2014-05-30 23:41:39 +0200
commitc7bca4183f73f9d013ea8ae572528b48b5e1ee42 (patch)
tree31ec2e1c9250ca2af53a86c3c120cc61bd043c39 /block/blk-timeout.c
parentblk-mq: blk_mq_unregister_hctx() can be static (diff)
downloadlinux-c7bca4183f73f9d013ea8ae572528b48b5e1ee42.tar.xz
linux-c7bca4183f73f9d013ea8ae572528b48b5e1ee42.zip
block: ensure that the timer is always added
Commit f793aa537866 relaxed the timer addition a little too much. If the timer isn't pending, we always need to add it. Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-timeout.c')
-rw-r--r--block/blk-timeout.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/blk-timeout.c b/block/blk-timeout.c
index 43e8b515806f..95a09590ccfd 100644
--- a/block/blk-timeout.c
+++ b/block/blk-timeout.c
@@ -224,7 +224,7 @@ void blk_add_timer(struct request *req)
* modifying the timer because expires for value X
* will be X + something.
*/
- if (diff >= HZ / 2)
+ if (!timer_pending(&q->timeout) || (diff >= HZ / 2))
mod_timer(&q->timeout, expiry);
}