Revert "blk-rq-qos: remove redundant finish_wait to rq_qos_wait."
authorJens Axboe <axboe@kernel.dk>
Wed, 15 Jul 2020 15:33:37 +0000 (09:33 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 15 Jul 2020 15:33:37 +0000 (09:33 -0600)
This reverts commit 826f2f48da8c331ac51e1381998d318012d66550.

Qian Cai reports that this commit causes stalls with swap. Revert until
the reason can be figured out.

Reported-by: Qian Cai <cai@lca.pw>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-rq-qos.c

index 18f3eab..6564606 100644 (file)
@@ -273,6 +273,8 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,
                if (data.got_token)
                        break;
                if (!has_sleeper && acquire_inflight_cb(rqw, private_data)) {
+                       finish_wait(&rqw->wait, &data.wq);
+
                        /*
                         * We raced with wbt_wake_function() getting a token,
                         * which means we now have two. Put our local token