Messages in this thread | ![/](/images/icornerl.gif) | | From | David Laight <> | Subject | RE: Splicing to/from a tty | Date | Wed, 20 Jan 2021 22:25:56 +0000 |
| |
From: Linus Torvalds > Sent: 20 January 2021 19:27 > On Wed, Jan 20, 2021 at 11:11 AM Al Viro <viro@zeniv.linux.org.uk> wrote: > > > > Why do we care about O_APPEND on anything without FMODE_PWRITE (including > > pipes), anyway? All writes there ignore position, after all... > > We shouldn't care. > > Also, I think we should try to move away from FMODE_PWRITE/PREAD > entirely, and use FMODE_STREAM as the primary "this thing doesn't have > a position at all". > > That's what gets rid of all the f_pos locking etc after all. The > FMODE_PWRITE/PREAD flags are I think legacy (although we do seem to > have the seq_file case that normally allows position on reads, but not > on writes, so we may need to keep all three bits). > > Anyway, I think that with FMODE_STREAM, O_APPEND definitely should be a no-op.
I also wonder if pread/pwrite with offset == 0 should be valid on things where the offset makes no sense.
I'm rather surprised the offset isn't just silently ignored for devices where seeking is non-sensical. You might want to error it for mag tapes, but not pipes, ttys, sockets etc.
I really can't remember what SYSV, Solaris or NetBSD do.
David
- Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)
| ![\](/images/icornerr.gif) |