Buildfarm still unhappy, so I'll bet it's EACCES not EPERM.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 1 Mar 2010 14:54:00 +0000 (14:54 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 1 Mar 2010 14:54:00 +0000 (14:54 +0000)
src/port/copydir.c

index cf3e11f5bd187993a57c23dc2e41a8f320c7c7ec..0927e62fe61f23f99364d3d56986a9ccdbcbd58a 100644 (file)
@@ -11,7 +11,7 @@
  * as a service.
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/port/copydir.c,v 1.35 2010/03/01 00:04:06 stark Exp $
+ *   $PostgreSQL: pgsql/src/port/copydir.c,v 1.36 2010/03/01 14:54:00 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -221,8 +221,9 @@ fsync_fname(char *fname, bool isdir)
    int         fd;
    int         returncode;
 
-   /* Some OSs require directories to be opened read-only whereas
-    * other systems don't allow us to fsync files opened read-only so
+   /*
+    * Some OSs require directories to be opened read-only whereas
+    * other systems don't allow us to fsync files opened read-only; so
     * we need both cases here 
     */
    if (!isdir)
@@ -234,10 +235,11 @@ fsync_fname(char *fname, bool isdir)
                           O_RDONLY | PG_BINARY,
                           S_IRUSR | S_IWUSR);
 
-   /* Some OSs don't allow us to open directories at all 
-    * (Windows returns EPERM) 
+   /*
+    * Some OSs don't allow us to open directories at all 
+    * (Windows returns EACCES) 
     */
-   if (fd < 0 && isdir && (errno == EISDIR || errno == EPERM))
+   if (fd < 0 && isdir && (errno == EISDIR || errno == EACCES))
        return;
 
    else if (fd < 0)