From: Josef Bacik <jo...@toxicpanda.com>

In case we get a spurious wakeup we need to make sure to re-set
ourselves to TASK_UNINTERRUPTIBLE so we don't busy wait.

Reviewed-by: Oleg Nesterov <o...@redhat.com>
Signed-off-by: Josef Bacik <jo...@toxicpanda.com>
Signed-off-by: Jens Axboe <ax...@kernel.dk>

Changes when porting to vz7:
- original patch is patching block/blk-rq-qos.c:rq_qos_wait, but in vz7
  similar hunk is in block/blk-wbt.c:__wbt_wait

https://jira.sw.ru/browse/PSBM-141883
(cherry picked from commit d14a9b389a86a5154b704bc88ce8dd37c701456a)
Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
---
 block/blk-wbt.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/block/blk-wbt.c b/block/blk-wbt.c
index f3c0841f009a..4c5b6899db71 100644
--- a/block/blk-wbt.c
+++ b/block/blk-wbt.c
@@ -599,6 +599,7 @@ static void __wbt_wait(struct rq_wb *rwb, enum wbt_flags 
wb_acct,
                        spin_lock_irq(lock);
 
                has_sleeper = true;
+               set_current_state(TASK_UNINTERRUPTIBLE);
        } while (1);
 
        finish_wait(&rqw->wait, &data.wq);
-- 
2.37.1

_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to