From 558bc2584d7e79801acb8344b79838cd3511915b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Tue, 17 Jan 2006 23:52:31 +0000 Subject: Fix fsync code to test whether F_FULLFSYNC is available, instead of assuming it always is on Darwin. Per report from Neil Brandt. --- src/backend/storage/file/fd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/backend/storage/file/fd.c') diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c index b7f1c3f5a2..496fc48163 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.124 2005/12/08 15:38:29 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/storage/file/fd.c,v 1.125 2006/01/17 23:52:31 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; } -- cgit v1.2.1