From: Hannes Reinecke Date: Wed, 30 Jan 2013 09:26:17 +0000 (+0000) Subject: block: check for timeout function in blk_rq_timed_out() X-Git-Tag: v3.11-rc1~121^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=80bd7181b036c7b4118eb19cfff3b555889596e6;p=profile%2Fcommon%2Fkernel-common.git 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 Signed-off-by: Hannes Reinecke Signed-off-by: Stefan Weinhuber Signed-off-by: Martin Schwidefsky --- diff --git a/block/blk-timeout.c b/block/blk-timeout.c index 6e4744c..65f1035 100644 --- a/block/blk-timeout.c +++ b/block/blk-timeout.c @@ -82,9 +82,10 @@ void blk_delete_timer(struct request *req) static void blk_rq_timed_out(struct request *req) { struct request_queue *q = req->q; - enum blk_eh_timer_return ret; + enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER; - ret = q->rq_timed_out_fn(req); + if (q->rq_timed_out_fn) + ret = q->rq_timed_out_fn(req); switch (ret) { case BLK_EH_HANDLED: __blk_complete_request(req);