Remove O_FSYNC and associated macros.
authorThomas Munro <tmunro@postgresql.org>
Fri, 22 Jul 2022 00:30:37 +0000 (12:30 +1200)
committerThomas Munro <tmunro@postgresql.org>
Fri, 22 Jul 2022 00:41:17 +0000 (12:41 +1200)
commita1b56090eb54544b8ae01b95b424c254c6b71678
treeb7750840d5c64e715c2f4bedd4cc980e5d1af013
parent4f1f5a7f85cee932c417aef589b27574813a06c9
Remove O_FSYNC and associated macros.

O_FSYNC was a pre-POSIX way of spelling O_SYNC, supported since commit
9d645fd84c3 for non-conforming operating systems of the time.  It's not
needed on any modern system.  We can just use standard O_SYNC directly
if it exists (= all targeted systems except Windows), and get rid of our
OPEN_SYNC_FLAG macro.

Similarly for standard O_DSYNC, we can just use that directly if it
exists (= all targeted systems except DragonFlyBSD), and get rid of our
OPEN_DATASYNC_FLAG macro.

We still avoid choosing open_datasync as a default value for
wal_sync_method if O_DSYNC has the same value as O_SYNC (= only
OpenBSD), so there is no change in default behavior.

Discussion: https://postgr.es/m/CA%2BhUKGJE7y92NY7FG2ftUbZUaqohBU65_Ys_7xF5mUHo4wirTQ%40mail.gmail.com
src/backend/access/transam/xlog.c
src/bin/pg_test_fsync/pg_test_fsync.c
src/include/access/xlogdefs.h