From 2eeca70fd1d9543ea856506e25ee9daf0efc33c7 Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Thu, 6 Jul 2017 13:24:31 +0300 Subject: [PATCH] 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. --- src/lib/file-create-locked.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/file-create-locked.c b/src/lib/file-create-locked.c index 2ac30c1658..39c2c2b2ee 100644 --- a/src/lib/file-create-locked.c +++ b/src/lib/file-create-locked.c @@ -66,7 +66,7 @@ try_mkdir(const char *path, const struct file_create_settings *set, 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; } -- 2.47.3