Commit a5a650d6 authored by Kent Overstreet's avatar Kent Overstreet

bcachefs: thread_with_stdio: suppress hung task warning

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 5c3273ec
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
#include <linux/kthread.h> #include <linux/kthread.h>
#include <linux/pagemap.h> #include <linux/pagemap.h>
#include <linux/poll.h> #include <linux/poll.h>
#include <linux/sched/sysctl.h>
void bch2_thread_with_file_exit(struct thread_with_file *thr) 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 ...@@ -264,7 +265,15 @@ int bch2_stdio_redirect_read(struct stdio_redirect *stdio, char *ubuf, size_t le
{ {
struct stdio_buf *buf = &stdio->input; 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) if (stdio->done)
return -1; return -1;
...@@ -287,7 +296,11 @@ int bch2_stdio_redirect_readline(struct stdio_redirect *stdio, char *ubuf, size_ ...@@ -287,7 +296,11 @@ int bch2_stdio_redirect_readline(struct stdio_redirect *stdio, char *ubuf, size_
size_t copied = 0; size_t copied = 0;
ssize_t ret = 0; ssize_t ret = 0;
again: 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) { if (stdio->done) {
ret = -1; ret = -1;
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment