From: Jens Axboe <axboe@kernel.dk>
Date: Sat, 30 Sep 2017 02:08:24 -0600
Subject: [PATCH] blk-mq: wire up completion notifier for laptop mode
Git-commit: 7beb2f845b715cb98584cf630e9a9d5b05501166
Patch-mainline: v4.15-rc1
References: bsc#1104967,FATE#325924
For some reason, the laptop mode IO completion notified was never wired
up for blk-mq. Ensure that we trigger the callback appropriately, to arm
the laptop mode flush timer.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Bart Van Assche <Bart.VanAssche@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Acked-by: Hannes Reinecke <hare@suse.com>
---
block/blk-mq.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 59687ed6561b..7f01d69879d6 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -476,6 +476,9 @@ void blk_mq_free_request(struct request *rq)
if (rq->rq_flags & RQF_MQ_INFLIGHT)
atomic_dec(&hctx->nr_active);
+ if (unlikely(laptop_mode && !blk_rq_is_passthrough(rq)))
+ laptop_io_completion(q->backing_dev_info);
+
wbt_done(q->rq_wb, &rq->issue_stat);
clear_bit(REQ_ATOM_STARTED, &rq->atomic_flags);
--
2.16.4