提交 d14a9b38 编写于 作者: J Josef Bacik 提交者: Jens Axboe

rq-qos: set ourself TASK_UNINTERRUPTIBLE after we schedule

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: NOleg Nesterov <oleg@redhat.com>
Signed-off-by: NJosef Bacik <josef@toxicpanda.com>
Signed-off-by: NJens Axboe <axboe@kernel.dk>
上级 64e7ea87
...@@ -262,6 +262,7 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data, ...@@ -262,6 +262,7 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,
} }
io_schedule(); io_schedule();
has_sleeper = true; has_sleeper = true;
set_current_state(TASK_UNINTERRUPTIBLE);
} while (1); } while (1);
finish_wait(&rqw->wait, &data.wq); finish_wait(&rqw->wait, &data.wq);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册