From d1210d5afb9e16527f0b18448d82c675c03aa7c0 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Tue, 29 May 2018 15:52:39 +0200 Subject: [PATCH] blk-mq: simplify blk_mq_rq_timed_out Signed-off-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe --- block/blk-mq.c | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index 51edbbb91369..3d3952301b3e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -770,22 +770,16 @@ EXPORT_SYMBOL(blk_mq_tag_to_rq); static void blk_mq_rq_timed_out(struct request *req, bool reserved) { - const struct blk_mq_ops *ops = req->q->mq_ops; - enum blk_eh_timer_return ret = BLK_EH_RESET_TIMER; + if (req->q->mq_ops->timeout) { + enum blk_eh_timer_return ret; - if (ops->timeout) - ret = ops->timeout(req, reserved); - - switch (ret) { - case BLK_EH_RESET_TIMER: - blk_add_timer(req); - break; - case BLK_EH_DONE: - break; - default: - printk(KERN_ERR "block: bad eh return: %d\n", ret); - break; + ret = req->q->mq_ops->timeout(req, reserved); + if (ret == BLK_EH_DONE) + return; + WARN_ON_ONCE(ret != BLK_EH_RESET_TIMER); } + + blk_add_timer(req); } static bool blk_mq_req_expired(struct request *rq, unsigned long *next)