Make safeguard against incorrect flags for fsync more portable.
authorTom Lane <[email protected]>
Tue, 1 Jul 2025 16:08:20 +0000 (12:08 -0400)
committerTom Lane <[email protected]>
Tue, 1 Jul 2025 16:08:58 +0000 (12:08 -0400)
commitd0a695cf41de8f11a596b42f52af7e0f68f5b86f
treed2f670fa8207350b6c900efbeef5e4887d886084
parent4bcca5ff829ba20c2d4a707c02a8e602b9ad5871
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 <[email protected]>
Co-authored-by: Samuel Thibault
Reviewed-by: Tom Lane <[email protected]>
Discussion: https://postgr.es/m/6862e8d1.050a0220[email protected]
Discussion: https://postgr.es/m/68480868.5d0a0220[email protected]
Backpatch-through: 13
src/backend/storage/file/fd.c