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
This commit is contained in:
Jeff Sharkey 2012-09-25 11:10:16 -07:00
parent 0b76d02099
commit 489609bb44
1 changed files with 4 additions and 2 deletions

View File

@ -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: