Files
linux/include/uapi/linux
Rich Felker 73fa7547c7 vfs: add RWF_NOAPPEND flag for pwritev2
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>
Link: https://lore.kernel.org/r/20200831153207.GO3265@brightrain.aerifal.cx
Reviewed-by: Jann Horn <jannh@google.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
2024-01-22 15:33:37 +01:00
..
2023-05-14 16:05:28 +01:00
2021-01-25 18:44:44 +01:00
2023-05-30 15:20:08 +01:00
2024-01-02 12:41:16 +00:00
2021-11-01 13:36:08 +00:00
2022-08-11 10:31:19 -07:00
2023-12-19 08:23:03 -08:00
2022-06-07 10:20:42 -07:00
2021-11-26 16:48:59 +01:00
2023-12-07 12:44:19 -08:00
2023-01-20 09:33:22 +00:00
2023-03-06 15:49:07 -06:00
2023-09-24 18:17:31 -07:00
2020-07-19 19:20:22 -07:00
2022-04-04 08:55:23 +02:00
2023-03-16 21:20:32 -07:00
2024-01-22 15:33:37 +01:00
2023-09-21 19:22:05 +02:00
2022-08-10 13:49:50 +01:00
2021-02-08 13:01:24 +01:00
2023-10-24 12:02:02 +02:00
2021-11-15 07:53:10 -08:00
2021-06-03 15:31:34 -07:00
2022-09-20 09:13:38 +02:00
2021-03-10 09:34:06 +01:00
2023-12-15 17:01:30 +01:00
2023-06-09 16:25:16 -07:00
2023-12-14 11:49:17 +01:00
2023-04-27 19:15:11 -06:00
2022-09-07 16:46:03 +02:00
2023-11-28 19:05:16 +00:00
2023-10-28 13:31:05 -05:00
2023-12-20 19:26:31 -05:00
2023-11-18 14:56:16 +01:00
2023-10-27 10:35:46 +01:00
2022-11-17 11:04:23 -08:00
2021-01-07 16:17:32 +01:00
2022-09-27 17:29:09 -07:00
2023-06-05 09:36:35 +02:00
2023-12-29 11:58:24 -08:00
2023-03-23 17:25:46 +01:00
2021-06-12 13:16:45 -07:00
2020-07-13 15:32:56 -07:00