block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer
authorRichard Kennedy <richard@rsk.demon.co.uk>
Wed, 14 Apr 2010 18:53:37 +0000 (20:53 +0200)
committerJens Axboe <jens.axboe@oracle.com>
Wed, 14 Apr 2010 18:53:37 +0000 (20:53 +0200)
commitc0d97e9ca2cfa66bdfd1ed8ecb5dcd230924d675
treecaa22e17a137d1030ce2e71742f66076df19872b
parent28baf44299e0480d66ebb3093de5d51deff04e9f
block: ensure jiffies wrap is handled correctly in blk_rq_timed_out_timer

blk_rq_timed_out_timer() relied on blk_add_timer() never returning a
timer value of zero, but commit 7838c15b8dd18e78a523513749e5b54bda07b0cb
removed the code that bumped this value when it was zero.
Therefore when jiffies is near wrap we could get unlucky & not set the
timeout value correctly.

This patch uses a flag to indicate that the timeout value was set and so
handles jiffies wrap correctly, and it keeps all the logic in one
function so should be easier to maintain in the future.

Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
block/blk-timeout.c