Loading init/reboot.cpp +15 −15 Original line number Diff line number Diff line Loading @@ -267,8 +267,6 @@ static void DumpUmountDebuggingInfo(bool dump_all) { static UmountStat UmountPartitions(std::chrono::milliseconds timeout) { Timer t; UmountStat stat = UMOUNT_STAT_TIMEOUT; int retry = 0; /* data partition needs all pending writes to be completed and all emulated partitions * umounted.If the current waiting is not good enough, give * up and leave it to e2fsck after reboot to fix it. Loading @@ -280,25 +278,27 @@ static UmountStat UmountPartitions(std::chrono::milliseconds timeout) { return UMOUNT_STAT_ERROR; } if (block_devices.size() == 0) { stat = UMOUNT_STAT_SUCCESS; break; } if ((timeout < t.duration()) && retry > 0) { // try umount at least once stat = UMOUNT_STAT_TIMEOUT; break; return UMOUNT_STAT_SUCCESS; } if (emulated_devices.size() > 0 && std::all_of(emulated_devices.begin(), emulated_devices.end(), [](auto& entry) { return entry.Umount(); })) { bool unmount_done = true; if (emulated_devices.size() > 0) { unmount_done = std::all_of(emulated_devices.begin(), emulated_devices.end(), [](auto& entry) { return entry.Umount(); }); if (unmount_done) { sync(); } for (auto& entry : block_devices) { entry.Umount(); } retry++; unmount_done = std::all_of(block_devices.begin(), block_devices.end(), [](auto& entry) { return entry.Umount(); }) && unmount_done; if (unmount_done) { return UMOUNT_STAT_SUCCESS; } if ((timeout < t.duration())) { // try umount at least once return UMOUNT_STAT_TIMEOUT; } std::this_thread::sleep_for(100ms); } return stat; } static void KillAllProcesses() { android::base::WriteStringToFile("i", "/proc/sysrq-trigger"); } Loading Loading
init/reboot.cpp +15 −15 Original line number Diff line number Diff line Loading @@ -267,8 +267,6 @@ static void DumpUmountDebuggingInfo(bool dump_all) { static UmountStat UmountPartitions(std::chrono::milliseconds timeout) { Timer t; UmountStat stat = UMOUNT_STAT_TIMEOUT; int retry = 0; /* data partition needs all pending writes to be completed and all emulated partitions * umounted.If the current waiting is not good enough, give * up and leave it to e2fsck after reboot to fix it. Loading @@ -280,25 +278,27 @@ static UmountStat UmountPartitions(std::chrono::milliseconds timeout) { return UMOUNT_STAT_ERROR; } if (block_devices.size() == 0) { stat = UMOUNT_STAT_SUCCESS; break; } if ((timeout < t.duration()) && retry > 0) { // try umount at least once stat = UMOUNT_STAT_TIMEOUT; break; return UMOUNT_STAT_SUCCESS; } if (emulated_devices.size() > 0 && std::all_of(emulated_devices.begin(), emulated_devices.end(), [](auto& entry) { return entry.Umount(); })) { bool unmount_done = true; if (emulated_devices.size() > 0) { unmount_done = std::all_of(emulated_devices.begin(), emulated_devices.end(), [](auto& entry) { return entry.Umount(); }); if (unmount_done) { sync(); } for (auto& entry : block_devices) { entry.Umount(); } retry++; unmount_done = std::all_of(block_devices.begin(), block_devices.end(), [](auto& entry) { return entry.Umount(); }) && unmount_done; if (unmount_done) { return UMOUNT_STAT_SUCCESS; } if ((timeout < t.duration())) { // try umount at least once return UMOUNT_STAT_TIMEOUT; } std::this_thread::sleep_for(100ms); } return stat; } static void KillAllProcesses() { android::base::WriteStringToFile("i", "/proc/sysrq-trigger"); } Loading