From 39d862a05b9570f2e0127d2dcf9040d408ef208c Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@enterprisedb.com>
Date: Wed, 27 Dec 2017 00:01:04 +1300
Subject: [PATCH] Fix creation of named temporary dir that already exists.

Commit dc6c4c9dc2a111519b76b22daaaac86c5608223b intended to tolerate attempts
to create the same temporary directory concurrently, but failed to check for
EEXIST in one case.  Repair.
---
 src/backend/storage/file/fd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index 5c7fd645ac6..f449ee5c51a 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -1451,7 +1451,7 @@ PathNameCreateTemporaryDir(const char *basedir, const char *directory)
 							basedir)));
 
 		/* Try again. */
-		if (mkdir(directory, S_IRWXU) < 0)
+		if (mkdir(directory, S_IRWXU) < 0 && errno != EEXIST)
 			ereport(ERROR,
 					(errcode_for_file_access(),
 					 errmsg("cannot create temporary subdirectory \"%s\": %m",
-- 
2.15.0

