summaryrefslogtreecommitdiff
path: root/src/backend/storage/file/fd.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-01-17 23:52:50 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-01-17 23:52:50 +0000
commit9e72b3c2c5328d375ca4dad245a3be7b7bd55228 (patch)
tree085a876e93e22c7521fc9a24f27394626e042cb4 /src/backend/storage/file/fd.c
parent7b3d9367b449f160fd4597094b0e18054d555b09 (diff)
Fix fsync code to test whether F_FULLFSYNC is available, instead of
assuming it always is on Darwin. Per report from Neil Brandt.
Diffstat (limited to 'src/backend/storage/file/fd.c')
-rw-r--r--src/backend/storage/file/fd.c8
1 files changed, 5 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;
}