Messages in this thread Patch in this message | | | Date | Thu, 21 Dec 2023 04:09:10 +0100 | From | Ahelenia Ziemiańska <> | Subject | [PATCH v2 08/11] tty: splice_read: disable |
| |
We request non-blocking I/O in the generic copy_splice_read, but "the tty layer doesn't actually honor the IOCB_NOWAIT flag for various historical reasons.". This means that a tty->pipe splice will happily sleep with the pipe locked forever, and any process trying to take it (due to an open/read/write/&c.) will enter uninterruptible sleep.
This also masks inconsistent wake-ups (usually every second line) when splicing from ttys in icanon mode.
Link: https://lore.kernel.org/linux-fsdevel/CAHk-=wimmqG_wvSRtMiKPeGGDL816n65u=Mq2+H3-=uM2U6FmA@mail.gmail.com/ Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> --- drivers/tty/tty_io.c | 2 -- 1 file changed, 2 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c index 06414e43e0b5..50c2957a9c7f 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -465,7 +465,6 @@ static const struct file_operations tty_fops = { .llseek = no_llseek, .read_iter = tty_read, .write_iter = tty_write, - .splice_read = copy_splice_read, .splice_write = iter_file_splice_write, .poll = tty_poll, .unlocked_ioctl = tty_ioctl, @@ -480,7 +479,6 @@ static const struct file_operations console_fops = { .llseek = no_llseek, .read_iter = tty_read, .write_iter = redirected_tty_write, - .splice_read = copy_splice_read, .splice_write = iter_file_splice_write, .poll = tty_poll, .unlocked_ioctl = tty_ioctl, -- 2.39.2[unhandled content-type:application/pgp-signature] | |