提交 5e30d9a4 编写于 作者: J Josef Bacik 提交者: Xie XiuQi

rq-qos: set ourself TASK_UNINTERRUPTIBLE after we schedule

mainline inclusion
from mainline-5.3-rc2
commit d14a9b389a86a5154b704bc88ce8dd37c701456a
category: bugfix
bugzilla: 21211
CVE: NA

---------------------------

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>

Conflicts:
	block/blk-rq-qos.c
[yan: the code was in __wbt_wait()]
Signed-off-by: NJason Yan <yanaijie@huawei.com>
Reviewed-by: NYufen Yu <yuyufen@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 3888f36e
......@@ -570,6 +570,7 @@ static void __wbt_wait(struct rq_wb *rwb, enum wbt_flags wb_acct,
io_schedule();
has_sleeper = true;
set_current_state(TASK_UNINTERRUPTIBLE);
} while (1);
finish_wait(&rqw->wait, &data.wq);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册