Index: src/backend/access/transam/xlog.c =================================================================== RCS file: /cvsroot/pgsql/src/backend/access/transam/xlog.c,v retrieving revision 1.213 diff -c -c -r1.213 xlog.c *** src/backend/access/transam/xlog.c 29 Jul 2005 19:29:59 -0000 1.213 --- src/backend/access/transam/xlog.c 30 Jul 2005 14:14:43 -0000 *************** *** 69,85 **** * default method. We assume that fsync() is always available, and that * configure determined whether fdatasync() is. */ ! #if defined(O_SYNC) #define CMP_OPEN_SYNC_FLAG O_SYNC ! #else ! #if defined(O_FSYNC) #define CMP_OPEN_SYNC_FLAG O_FSYNC #endif ! #endif #define OPEN_SYNC_FLAG (CMP_OPEN_SYNC_FLAG | PG_O_DIRECT) ! #if defined(O_DSYNC) ! #if defined(OPEN_SYNC_FLAG) #if O_DSYNC != CMP_OPEN_SYNC_FLAG #define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT) #endif --- 69,86 ---- * default method. We assume that fsync() is always available, and that * configure determined whether fdatasync() is. */ ! #ifdef O_SYNC #define CMP_OPEN_SYNC_FLAG O_SYNC ! #elif defined(O_FSYNC) #define CMP_OPEN_SYNC_FLAG O_FSYNC #endif ! #ifdef CMP_OPEN_SYNC_FLAG #define OPEN_SYNC_FLAG (CMP_OPEN_SYNC_FLAG | PG_O_DIRECT) + #endif ! #ifdef O_DSYNC ! #ifdef OPEN_SYNC_FLAG ! /* O_DSYNC is distinct? */ #if O_DSYNC != CMP_OPEN_SYNC_FLAG #define OPEN_DATASYNC_FLAG (O_DSYNC | PG_O_DIRECT) #endif *************** *** 114,120 **** #define XLOG_BUFFER_POINTERALIGN(PTR) \ POINTERALIGN((ALIGNOF_XLOG_BUFFER), (PTR)) ! #if defined(OPEN_DATASYNC_FLAG) #define DEFAULT_SYNC_METHOD_STR "open_datasync" #define DEFAULT_SYNC_METHOD SYNC_METHOD_OPEN #define DEFAULT_SYNC_FLAGBIT OPEN_DATASYNC_FLAG --- 115,121 ---- #define XLOG_BUFFER_POINTERALIGN(PTR) \ POINTERALIGN((ALIGNOF_XLOG_BUFFER), (PTR)) ! #ifdef OPEN_DATASYNC_FLAG #define DEFAULT_SYNC_METHOD_STR "open_datasync" #define DEFAULT_SYNC_METHOD SYNC_METHOD_OPEN #define DEFAULT_SYNC_FLAGBIT OPEN_DATASYNC_FLAG