From 489609bb44fe8834c76c772f2cff8f03dbb84e08 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 25 Sep 2012 11:10:16 -0700 Subject: [PATCH] Allow mkdir() race to succeed. When two zygotes are starting, they both may try creating a mount point after checking lstat(). The second mkdir() will result in EEXIST, which is okay to ignore. Bug: 7165469 Change-Id: If4411e2621f773c74cd05247899982fa5ebdd020 --- libcutils/fs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libcutils/fs.c b/libcutils/fs.c index a9889b2bf..1226d447e 100644 --- a/libcutils/fs.c +++ b/libcutils/fs.c @@ -55,8 +55,10 @@ int fs_prepare_dir(const char* path, mode_t mode, uid_t uid, gid_t gid) { create: if (TEMP_FAILURE_RETRY(mkdir(path, mode)) == -1) { - ALOGE("Failed to mkdir(%s): %s", path, strerror(errno)); - return -1; + if (errno != EEXIST) { + ALOGE("Failed to mkdir(%s): %s", path, strerror(errno)); + return -1; + } } fixup: