changeset 17896:3e9fda96a205

sdbox: Fixed race condition when two processes mkdir() the same directory
author Timo Sirainen <tss@iki.fi>
date Mon, 06 Oct 2014 21:15:31 +0300
parents 1b66c30fd421
children 721089f22ae4
files src/lib-storage/index/dbox-single/sdbox-file.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-storage/index/dbox-single/sdbox-file.c	Mon Oct 06 20:17:19 2014 +0300
+++ b/src/lib-storage/index/dbox-single/sdbox-file.c	Mon Oct 06 21:15:31 2014 +0300
@@ -255,7 +255,8 @@
 		dir = t_strdup_until(path, p);
 		if (mkdir_parents_chgrp(dir, perm->dir_create_mode,
 					perm->file_create_gid,
-					perm->file_create_gid_origin) < 0) {
+					perm->file_create_gid_origin) < 0 &&
+		   errno != EEXIST) {
 			mail_storage_set_critical(box->storage,
 				"mkdir_parents(%s) failed: %m", dir);
 			return -1;