mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-04 01:24:12 +08:00
bcachefs: thread_with_stdio: suppress hung task warning
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
5c3273ec3c
commit
a5a650d647
@ -9,6 +9,7 @@
|
||||
#include <linux/kthread.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/poll.h>
|
||||
#include <linux/sched/sysctl.h>
|
||||
|
||||
void bch2_thread_with_file_exit(struct thread_with_file *thr)
|
||||
{
|
||||
@ -264,7 +265,15 @@ int bch2_stdio_redirect_read(struct stdio_redirect *stdio, char *ubuf, size_t le
|
||||
{
|
||||
struct stdio_buf *buf = &stdio->input;
|
||||
|
||||
wait_event(buf->wait, stdio_redirect_has_input(stdio));
|
||||
/*
|
||||
* we're waiting on user input (or for the file descriptor to be
|
||||
* closed), don't want a hung task warning:
|
||||
*/
|
||||
do {
|
||||
wait_event_timeout(buf->wait, stdio_redirect_has_input(stdio),
|
||||
sysctl_hung_task_timeout_secs * HZ / 2);
|
||||
} while (!stdio_redirect_has_input(stdio));
|
||||
|
||||
if (stdio->done)
|
||||
return -1;
|
||||
|
||||
@ -287,7 +296,11 @@ int bch2_stdio_redirect_readline(struct stdio_redirect *stdio, char *ubuf, size_
|
||||
size_t copied = 0;
|
||||
ssize_t ret = 0;
|
||||
again:
|
||||
wait_event(buf->wait, stdio_redirect_has_input(stdio));
|
||||
do {
|
||||
wait_event_timeout(buf->wait, stdio_redirect_has_input(stdio),
|
||||
sysctl_hung_task_timeout_secs * HZ / 2);
|
||||
} while (!stdio_redirect_has_input(stdio));
|
||||
|
||||
if (stdio->done) {
|
||||
ret = -1;
|
||||
goto out;
|
||||
|
Loading…
Reference in New Issue
Block a user