Commit 80bd7181b036c7b4118eb19cfff3b555889596e6

Authored by Hannes Reinecke
Committed by Martin Schwidefsky
1 parent d1ffc1f866

block: check for timeout function in blk_rq_timed_out()

rq_timed_out_fn might have been unset while the request
was in flight, so we need to check for it in blk_rq_timed_out().

Acked-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Stefan Weinhuber <wein@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

Showing 1 changed file with 3 additions and 2 deletions Side-by-side Diff

... ... @@ -82,9 +82,10 @@
82 82 static void blk_rq_timed_out(struct request *req)
83 83 {
84 84 struct request_queue *q = req->q;
85   - enum blk_eh_timer_return ret;
  85 + enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER;
86 86  
87   - ret = q->rq_timed_out_fn(req);
  87 + if (q->rq_timed_out_fn)
  88 + ret = q->rq_timed_out_fn(req);
88 89 switch (ret) {
89 90 case BLK_EH_HANDLED:
90 91 __blk_complete_request(req);