open(2): fix the description of O_FSYNC

The man page claims that with O_FSYNC (aka O_SYNC) the kernel will not cache
written data. However, that's not true. Nor does POSIX require it.
Perhaps it was true when that section of the man page was written in r69336
(I haven't checked). But it's not true now.  Now the effect is simply that
writes are sent to disk immediately and synchronously, but they're still
cached.

See also: https://pubs.opengroup.org/onlinepubs/9699919799/
See also: ffs_write in sys/ufs/ffs/ffs_vnops.c

Reviewed by:	cem
MFC after:	2 weeks
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D20641
This commit is contained in:
Alan Somers 2019-06-14 20:35:37 +00:00
parent 3bae917061
commit 5993fa5582
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=349041

View File

@ -28,7 +28,7 @@
.\" @(#)open.2 8.2 (Berkeley) 11/16/93
.\" $FreeBSD$
.\"
.Dd November 11, 2018
.Dd June 14, 2019
.Dt OPEN 2
.Os
.Sh NAME
@ -224,10 +224,7 @@ The descriptor remains in non-blocking mode for subsequent operations.
If
.Dv O_FSYNC
is used in the mask, all writes will
immediately be written to disk,
the kernel will not cache written data
and all writes on the descriptor will not return until
the data to be written completes.
immediately and synchronously be written to disk.
.Pp
.Dv O_SYNC
is a synonym for