diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-core.c | 3 | ||||
-rw-r--r-- | block/blk-timeout.c | 5 |
2 files changed, 6 insertions, 2 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index 0852e5d43436..93a18d1d3da8 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -2315,6 +2315,9 @@ bool blk_update_request(struct request *req, int error, unsigned int nr_bytes) | |||
2315 | case -EBADE: | 2315 | case -EBADE: |
2316 | error_type = "critical nexus"; | 2316 | error_type = "critical nexus"; |
2317 | break; | 2317 | break; |
2318 | case -ETIMEDOUT: | ||
2319 | error_type = "timeout"; | ||
2320 | break; | ||
2318 | case -EIO: | 2321 | case -EIO: |
2319 | default: | 2322 | default: |
2320 | error_type = "I/O"; | 2323 | error_type = "I/O"; |
diff --git a/block/blk-timeout.c b/block/blk-timeout.c index 6e4744cbfb56..65f103563969 100644 --- a/block/blk-timeout.c +++ b/block/blk-timeout.c | |||
@@ -82,9 +82,10 @@ void blk_delete_timer(struct request *req) | |||
82 | static void blk_rq_timed_out(struct request *req) | 82 | static void blk_rq_timed_out(struct request *req) |
83 | { | 83 | { |
84 | struct request_queue *q = req->q; | 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 | switch (ret) { | 89 | switch (ret) { |
89 | case BLK_EH_HANDLED: | 90 | case BLK_EH_HANDLED: |
90 | __blk_complete_request(req); | 91 | __blk_complete_request(req); |