From: Christoph Hellwig Date: Tue, 29 May 2018 13:52:39 +0000 (+0200) Subject: blk-mq: simplify blk_mq_rq_timed_out X-Git-Tag: for-4.18/block-20180603~61 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=d1210d5afb9e16527f0b18448d82c675c03aa7c0;p=linux-block.git blk-mq: simplify blk_mq_rq_timed_out Signed-off-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe --- 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)