Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 489609bb authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

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
parent 0b76d020
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -55,9 +55,11 @@ 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) {
        if (errno != EEXIST) {
            ALOGE("Failed to mkdir(%s): %s", path, strerror(errno));
            return -1;
        }
    }

fixup:
    if (TEMP_FAILURE_RETRY(chmod(path, mode)) == -1) {