Skip to content

Commit

Permalink
open(2): fix the description of O_FSYNC
Browse files Browse the repository at this point in the history
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
  • Loading branch information
asomers committed Jun 14, 2019
1 parent d36b874 commit ba20317
Showing 1 changed file with 2 additions and 5 deletions.
7 changes: 2 additions & 5 deletions lib/libc/sys/open.2
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit ba20317

Please sign in to comment.