From 9dd6c4686bc496912f1b4958139931ef6a6f029b Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 22 Feb 2010 15:29:46 +0000 Subject: [PATCH] Let's try forcing errno to zero before issuing fsync. The current buildfarm results claiming EBADF seem improbable enough that I'm not convinced fsync is really returning that --- could it be failing to set errno at all? --- src/port/copydir.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/port/copydir.c b/src/port/copydir.c index df763daa47..3cd7db7a4c 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.30 2010/02/22 02:50:10 tgl Exp $ + * $PostgreSQL: pgsql/src/port/copydir.c,v 1.31 2010/02/22 15:29:46 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -229,9 +229,12 @@ 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(), errmsg("could not fsync file \"%s\": %m", fname))); + close(fd); } -- 2.40.0