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

Commit 2f5cfdbb authored by Johan Harvyl's avatar Johan Harvyl Committed by android-build-merger
Browse files

Merge "Format formattable partitions if mount fails"

am: cb768571

Change-Id: I50c2045f56693e445922d30af72867e7ac55b61f
parents c687a72d cb768571
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -102,7 +102,20 @@ int ensure_path_mounted_at(const char* path, const char* mount_point) {
    if (strcmp(v->fs_type, "ext4") == 0 ||
               strcmp(v->fs_type, "squashfs") == 0 ||
               strcmp(v->fs_type, "vfat") == 0) {
        if (mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options) == -1) {
        int result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options);
        if (result == -1 && fs_mgr_is_formattable(v)) {
            LOGE("failed to mount %s (%s), formatting ...\n",
                    mount_point, strerror(errno));
            bool crypt_footer = fs_mgr_is_encryptable(v) && !strcmp(v->key_loc, "footer");
            if (fs_mgr_do_format(v, crypt_footer) == 0) {
                result = mount(v->blk_device, mount_point, v->fs_type, v->flags, v->fs_options);
            } else {
                LOGE("failed to format %s (%s)\n", mount_point, strerror(errno));
                return -1;
            }
        }

        if (result == -1) {
            LOGE("failed to mount %s (%s)\n", mount_point, strerror(errno));
            return -1;
        }