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

Commit ed88361e authored by liyong's avatar liyong Committed by Jaegeuk Kim
Browse files

logwrap_fork_execvp block recovery auto reboot

Bug:231647359
Test:call ensure_path_mounted("/data") in WipeData function in recovery then factory reset

Change-Id: Ia5b669319776fae9478534484e3993c15fe4e6bf
parent ec76b5cb
Loading
Loading
Loading
Loading
+23 −17
Original line number Diff line number Diff line
@@ -266,16 +266,21 @@ static void check_fs(const std::string& blk_device, const std::string& fs_type,
        const char* f2fs_fsck_forced_argv[] = {
                F2FS_FSCK_BIN, "-f", "-c", "10000", "--debug-cache", blk_device.c_str()};

        if (access(F2FS_FSCK_BIN, X_OK)) {
            LINFO << "Not running " << F2FS_FSCK_BIN << " on " << realpath(blk_device)
                  << " (executable not in system image)";
        } else {
            if (should_force_check(*fs_stat)) {
                LINFO << "Running " << F2FS_FSCK_BIN << " -f -c 10000 --debug-cache "
                      << realpath(blk_device);
                ret = logwrap_fork_execvp(ARRAY_SIZE(f2fs_fsck_forced_argv), f2fs_fsck_forced_argv,
                                      &status, false, LOG_KLOG | LOG_FILE, false, FSCK_LOG_FILE);
                                          &status, false, LOG_KLOG | LOG_FILE, false,
                                          FSCK_LOG_FILE);
            } else {
                LINFO << "Running " << F2FS_FSCK_BIN << " -a -c 10000 --debug-cache "
                      << realpath(blk_device);
            ret = logwrap_fork_execvp(ARRAY_SIZE(f2fs_fsck_argv), f2fs_fsck_argv, &status, false,
                                      LOG_KLOG | LOG_FILE, false, FSCK_LOG_FILE);
                ret = logwrap_fork_execvp(ARRAY_SIZE(f2fs_fsck_argv), f2fs_fsck_argv, &status,
                                          false, LOG_KLOG | LOG_FILE, false, FSCK_LOG_FILE);
            }
            if (ret < 0) {
                /* No need to check for error in fork, we can't really handle it now */
@@ -286,6 +291,7 @@ static void check_fs(const std::string& blk_device, const std::string& fs_type,
                *fs_stat |= FS_STAT_FSCK_FS_FIXED;
            }
        }
    }
    android::base::SetProperty("ro.boottime.init.fsck." + Basename(target),
                               std::to_string(t.duration().count()));
    return;