Thread (10 messages) 10 messages, 6 authors, 2024-11-25

Re: [PATCH v2] vfs: add RWF_NOAPPEND flag for pwritev2

From: Rich Felker <dalias@libc.org>
Date: 2024-01-18 15:57:29
Also in: linux-fsdevel, lkml

On Mon, Aug 31, 2020 at 11:05:34AM -0600, Jens Axboe wrote:
On 8/31/20 9:46 AM, Jann Horn wrote:
quoted
On Mon, Aug 31, 2020 at 5:32 PM Rich Felker [off-list ref] wrote:
quoted
The pwrite function, originally defined by POSIX (thus the "p"), is
defined to ignore O_APPEND and write at the offset passed as its
argument. However, historically Linux honored O_APPEND if set and
ignored the offset. This cannot be changed due to stability policy,
but is documented in the man page as a bug.

Now that there's a pwritev2 syscall providing a superset of the pwrite
functionality that has a flags argument, the conforming behavior can
be offered to userspace via a new flag. Since pwritev2 checks flag
validity (in kiocb_set_rw_flags) and reports unknown ones with
EOPNOTSUPP, callers will not get wrong behavior on old kernels that
don't support the new flag; the error is reported and the caller can
decide how to handle it.

Signed-off-by: Rich Felker <dalias@libc.org>
Reviewed-by: Jann Horn <jannh@google.com>

Note that if this lands, Michael Kerrisk will probably be happy if you
send a corresponding patch for the manpage man2/readv.2.

Btw, I'm not really sure whose tree this should go through - VFS is
normally Al Viro's turf, but it looks like the most recent
modifications to this function have gone through Jens Axboe's tree?
Should probably go through Al's tree, I've only carried them when
they've been associated with io_uring in some shape or form.
This appears to have slipped through the cracks. Do I need to send an
updated rebase of it? Were there any objections to it I missed?

Rich
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help