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

Commit 506edb5f authored by Nick Kralevich's avatar Nick Kralevich
Browse files

sdcard: ensure installd fs upgrade has completed

Before running the sdcard daemon, make sure that installd has
completed all upgrades to /data that it needs to complete.
This avoids race conditions between installd and the sdcard daemon.

Maybe fixes bug 16329437.

(cherrypicked from commit 8d28fa71)

Bug: 16329437
Change-Id: I5e164f08009c1036469f8734ec07cbae9c5e262b
parent e91d9d80
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -1850,6 +1850,7 @@ int main(int argc, char **argv)
    bool split_perms = false;
    int i;
    struct rlimit rlim;
    int fs_version;

    int opt;
    while ((opt = getopt(argc, argv, "u:g:w:t:dls")) != -1) {
@@ -1924,6 +1925,11 @@ int main(int argc, char **argv)
        ERROR("Error setting RLIMIT_NOFILE, errno = %d\n", errno);
    }

    while ((fs_read_atomic_int("/data/.layout_version", &fs_version) == -1) || (fs_version < 3)) {
        ERROR("installd fs upgrade not yet complete. Waiting...\n");
        sleep(1);
    }

    res = run(source_path, dest_path, uid, gid, write_gid, num_threads, derive, split_perms);
    return res < 0 ? 1 : 0;
}