Re: [PATCH v2 08/11] tty: splice_read: disable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 21. 12. 23, 4:09, Ahelenia Ziemiańska wrote:
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@xxxxxxxxxxxxxx/
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@xxxxxxxxxxxxxxxxxx>
---
  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,

This and the other patch effectively reverts dd78b0c483e33 and 9bb48c82aced0. I.e. it breaks "things". Especially:

commit 9bb48c82aced07698a2d08ee0f1475a6c4f6b266
Author: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date:   Tue Jan 19 11:41:16 2021 -0800

    tty: implement write_iter

    This makes the tty layer use the .write_iter() function instead of the
    traditional .write() functionality.

    That allows writev(), but more importantly also makes it possible to
    enable .splice_write() for ttys, reinstating the "splice to tty"
    functionality that was lost in commit 36e2c7421f02 ("fs: don't allow
    splice read/write without explicit ops").

Fixes: 36e2c7421f02 ("fs: don't allow splice read/write without explicit ops")


What are those "things" doing that "splice to tty", I don't recall and the commit message above ^^^ does not spell that out. Linus?

thanks,
--
js





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux