diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/backend/storage/file/fd.c | 8 | ||||
-rw-r--r-- | src/include/pg_config.h.in | 4 | ||||
-rw-r--r-- | src/include/port/darwin.h | 2 |
3 files changed, 11 insertions, 3 deletions
diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index 195563ebe3c..e4ebb93fc92 100644 --- a/src/backend/storage/file/fd.c +++ b/src/backend/storage/file/fd.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.121.2.2 2005/12/01 20:24:31 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.121.2.3 2006/01/17 23:52:50 tgl Exp $ * * NOTES: * @@ -265,13 +265,15 @@ int pg_fsync_writethrough(int fd) { if (enableFsync) + { #ifdef WIN32 return _commit(fd); -#elif defined(__darwin__) - return (fcntl(fd, F_FULLFSYNC, 0) == -1) ? -1 : 0; +#elif defined(F_FULLFSYNC) + return (fcntl(fd, F_FULLFSYNC, 0) == -1) ? -1 : 0; #else return -1; #endif + } else return 0; } diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index b1daceeecf9..d344ecd2906 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -72,6 +72,10 @@ don't. */ #undef HAVE_DECL_FDATASYNC +/* Define to 1 if you have the declaration of `F_FULLFSYNC', and to 0 if you + don't. */ +#undef HAVE_DECL_F_FULLFSYNC + /* Define to 1 if you have the declaration of `snprintf', and to 0 if you don't. */ #undef HAVE_DECL_SNPRINTF diff --git a/src/include/port/darwin.h b/src/include/port/darwin.h index 2b7600bebeb..af4ce9b3856 100644 --- a/src/include/port/darwin.h +++ b/src/include/port/darwin.h @@ -1,3 +1,5 @@ #define __darwin__ 1 +#if HAVE_DECL_F_FULLFSYNC /* not present before OS X 10.3 */ #define HAVE_FSYNC_WRITETHROUGH +#endif |