diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2008-09-14 08:55:09 -0400 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2008-10-09 02:56:13 -0400 |
commit | 242f9dcb8ba6f68fcd217a119a7648a4f69290e9 (patch) | |
tree | 1bfe245ffbc50d204d76665cd8f90d85100f86a1 /block/blk-settings.c | |
parent | 608aeef17a91747d6303de4df5e2c2e6899a95e8 (diff) |
block: unify request timeout handling
Right now SCSI and others do their own command timeout handling.
Move those bits to the block layer.
Instead of having a timer per command, we try to be a bit more clever
and simply have one per-queue. This avoids the overhead of having to
tear down and setup a timer for each command, so it will result in a lot
less timer fiddling.
Signed-off-by: Mike Anderson <andmike@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-settings.c')
-rw-r--r-- | block/blk-settings.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/block/blk-settings.c b/block/blk-settings.c index d70692badcdb..1d0330d0b40a 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c | |||
@@ -77,6 +77,18 @@ void blk_queue_softirq_done(struct request_queue *q, softirq_done_fn *fn) | |||
77 | } | 77 | } |
78 | EXPORT_SYMBOL(blk_queue_softirq_done); | 78 | EXPORT_SYMBOL(blk_queue_softirq_done); |
79 | 79 | ||
80 | void blk_queue_rq_timeout(struct request_queue *q, unsigned int timeout) | ||
81 | { | ||
82 | q->rq_timeout = timeout; | ||
83 | } | ||
84 | EXPORT_SYMBOL_GPL(blk_queue_rq_timeout); | ||
85 | |||
86 | void blk_queue_rq_timed_out(struct request_queue *q, rq_timed_out_fn *fn) | ||
87 | { | ||
88 | q->rq_timed_out_fn = fn; | ||
89 | } | ||
90 | EXPORT_SYMBOL_GPL(blk_queue_rq_timed_out); | ||
91 | |||
80 | /** | 92 | /** |
81 | * blk_queue_make_request - define an alternate make_request function for a device | 93 | * blk_queue_make_request - define an alternate make_request function for a device |
82 | * @q: the request queue for the device to be affected | 94 | * @q: the request queue for the device to be affected |