From c3a24e3143e35af141145cdb082a6e66dded922b Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 23 Feb 2010 05:44:55 +0000
Subject: [PATCH] Some platforms reject fsync() on files opened O_RDONLY.

---
 src/port/copydir.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/port/copydir.c b/src/port/copydir.c
index 3cd7db7a4cd..14c6ffe7691 100644
--- a/src/port/copydir.c
+++ b/src/port/copydir.c
@@ -11,7 +11,7 @@
  *	as a service.
  *
  * IDENTIFICATION
- *	  $PostgreSQL: pgsql/src/port/copydir.c,v 1.31 2010/02/22 15:29:46 tgl Exp $
+ *	  $PostgreSQL: pgsql/src/port/copydir.c,v 1.32 2010/02/23 05:44:55 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -221,7 +221,7 @@ static void
 fsync_fname(char *fname)
 {
 	int	fd = BasicOpenFile(fname, 
-						   O_RDONLY | PG_BINARY,
+						   O_RDWR | PG_BINARY,
 						   S_IRUSR | S_IWUSR);
 
 	if (fd < 0)
@@ -229,8 +229,6 @@ fsync_fname(char *fname)
 				(errcode_for_file_access(),
 				 errmsg("could not open file \"%s\": %m", fname)));
 
-	errno = 0;
-
 	if (pg_fsync(fd) != 0)
 		ereport(ERROR,
 				(errcode_for_file_access(),
-- 
GitLab