changeset 22434:339d2a356620

lib: file_create_locked() - Treat mkdir() EEXIST error as success This can happen in race conditions when multiple processes are mkdir()ing the same directory. It shouldn't result in failure.
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Thu, 06 Jul 2017 13:24:31 +0300
parents 47389f0e1827
children 8020b3f6a4f8
files src/lib/file-create-locked.c
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/file-create-locked.c	Wed Jul 26 19:47:16 2017 +0300
+++ b/src/lib/file-create-locked.c	Thu Jul 06 13:24:31 2017 +0300
@@ -66,7 +66,7 @@
 		ret = mkdir_parents_chgrp(dir, set->mkdir_mode,
 					  gid, set->gid_origin);
 	}
-	if (ret < 0) {
+	if (ret < 0 && errno != EEXIST) {
 		*error_r = t_strdup_printf("mkdir_parents(%s) failed: %m", dir);
 		return -1;
 	}