git: a5e284038edc - main - open(2): Add O_DSYNC flag.
Kyle Evans
kevans at freebsd.org
Fri Jan 8 03:54:13 UTC 2021
On Thu, Jan 7, 2021 at 6:17 PM Thomas Munro <tmunro at freebsd.org> wrote:
>
> The branch main has been updated by tmunro:
>
> URL: https://cgit.FreeBSD.org/src/commit/?id=a5e284038edc36b0447f1e6337419a3c0ea1788d
>
> commit a5e284038edc36b0447f1e6337419a3c0ea1788d
> Author: Thomas Munro <tmunro at FreeBSD.org>
> AuthorDate: 2021-01-07 10:46:51 +0000
> Commit: Thomas Munro <tmunro at FreeBSD.org>
> CommitDate: 2021-01-08 00:15:56 +0000
>
> open(2): Add O_DSYNC flag.
>
> POSIX O_DSYNC means that writes include an implicit fdatasync(2), just
> as O_SYNC implies fsync(2).
>
> VOP_WRITE() functions that understand the new IO_DATASYNC flag can act
> accordingly, but we'll still pass down IO_SYNC so that file systems that
> don't understand it will continue to provide the stronger O_SYNC
> behaviour.
>
> Flag also applies to fcntl(2).
>
> Reviewed by: kib, delphij
> Differential Revision: https://reviews.freebsd.org/D25090
> ---
> lib/libc/sys/fcntl.2 | 19 +++++++++++++++++--
> lib/libc/sys/open.2 | 20 +++++++++++++-------
> .../openzfs/include/os/freebsd/spl/sys/ccompile.h | 1 -
> .../openzfs/include/os/freebsd/spl/sys/vnode.h | 2 ++
> sys/kern/vfs_vnops.c | 7 +++++++
> sys/sys/fcntl.h | 15 +++++++++------
> sys/sys/vnode.h | 1 +
> 7 files changed, 49 insertions(+), 16 deletions(-)
>
> [... snip ...]
> diff --git a/sys/sys/fcntl.h b/sys/sys/fcntl.h
> index 2f424d173949..e2597726c53b 100644
> --- a/sys/sys/fcntl.h
> +++ b/sys/sys/fcntl.h
> @@ -141,8 +141,10 @@ typedef __pid_t pid_t;
> return back */
> #endif
>
> +#define O_DSYNC 0x00800000 /* POSIX data sync */
> +
> /*
> - * XXX missing O_DSYNC, O_RSYNC.
> + * XXX missing O_RSYNC.
> */
>
> #ifdef _KERNEL
I think the value of O_DSYNC got resolved incorrectly in a merge
conflict; O_RESOLVE_BENEATH in the just prior __BSD_VISIBLE block took
0x00800000, so I believe this should be 0x01000000.
Thanks,
Kyle Evans
More information about the dev-commits-src-main
mailing list