diff --git a/block/blk-rq-qos.c b/block/blk-rq-qos.c
index 659ccb8b693fa63cedfc53536589f5afcf3b1afc..67a0a4c07060b1557f18fcfeb3cf28ea740c95c7 100644
--- a/block/blk-rq-qos.c
+++ b/block/blk-rq-qos.c
@@ -244,6 +244,7 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,
 		return;
 
 	prepare_to_wait_exclusive(&rqw->wait, &data.wq, TASK_UNINTERRUPTIBLE);
+	has_sleeper = !wq_has_single_sleeper(&rqw->wait);
 	do {
 		if (data.got_token)
 			break;