Make safeguard against incorrect flags for fsync more portable.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 1 Jul 2025 16:08:20 +0000 (12:08 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 1 Jul 2025 16:08:20 +0000 (12:08 -0400)
commit29213636e6cddcb7b2c877bff8cb9ba470d392db
tree304f4e570f17ecf841775a25f129b683e9b93761
parent8af0d0ab01b406b8671ff4426acfe9b1d2af30d8
Make safeguard against incorrect flags for fsync more portable.

The existing code assumed that O_RDONLY is defined as 0, but this is
not required by POSIX and is not true on GNU Hurd.  We can avoid
the assumption by relying on O_ACCMODE to mask the fcntl() result.
(Hopefully, all supported platforms define that.)

Author: Michael Banck <mbanck@gmx.net>
Co-authored-by: Samuel Thibault
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: http://postgr.es/m/6862e8d1.050a0220.194b8d.76fa@mx.google.com
Discussion: http://postgr.es/m/68480868.5d0a0220.1e214d.68a6@mx.google.com
Backpatch-through: 13
src/backend/storage/file/fd.c