From 42697d3f1891bc87154069e4205a94226cbe941e Mon Sep 17 00:00:00 2001 From: Nikita Ioffe Date: Tue, 5 Nov 2019 23:04:17 +0000 Subject: [PATCH] Make remount into checkpointing for ext4 userdata a no-op We are going to teamfood userspace reboot soon, and in order to gather as much data as possible we are fine with ignoring checkpointing for the devices with ext4 (teamfood will be a very limited set of people that are aware what they've signed for). As result of this, we don't need to reset vold and kill zram backing device. Added a TODO to restore that functionality if needed. Since I was there, fixed yet another typo in userspace-reboot-resume -_- Bug: 135984674 Test: adb reboot userspace Change-Id: I2b7a93aaf738fe9bec9d606d7e11aefb325550b1 --- fs_mgr/fs_mgr.cpp | 5 ++--- init/reboot.cpp | 19 ++----------------- rootdir/init.rc | 2 +- 3 files changed, 5 insertions(+), 21 deletions(-) diff --git a/fs_mgr/fs_mgr.cpp b/fs_mgr/fs_mgr.cpp index a8059b7c4..75ebd94c8 100644 --- a/fs_mgr/fs_mgr.cpp +++ b/fs_mgr/fs_mgr.cpp @@ -1407,9 +1407,8 @@ int fs_mgr_remount_userdata_into_checkpointing(Fstab* fstab) { return -1; } } else { - // TODO(b/135984674): support remounting for ext4. - LERROR << "Remounting in checkpointing mode is not yet supported for ext4"; - return -1; + // STOPSHIP(b/143970043): support remounting for ext4. + LWARNING << "Remounting into checkpointing is not supported for ex4. Proceed with caution"; } return 0; } diff --git a/init/reboot.cpp b/init/reboot.cpp index fc18ecb50..a76a9ba45 100644 --- a/init/reboot.cpp +++ b/init/reboot.cpp @@ -746,23 +746,8 @@ static Result DoUserspaceReboot() { // TODO(b/135984674): store information about offending services for debugging. return Error() << r << " post-data services are still running"; } - // We only really need to restart vold if userdata is ext4 filesystem. - // TODO(b/135984674): get userdata fs type here, and do nothing in case of f2fs. - // First shutdown volumes managed by vold. They will be recreated by - // system_server. - Service* vold_service = ServiceList::GetInstance().FindService("vold"); - if (vold_service != nullptr && vold_service->IsRunning()) { - if (auto result = ShutdownVold(); !result) { - return result; - } - LOG(INFO) << "Restarting vold"; - vold_service->Restart(); - } - // Again, we only need to kill zram backing device in case of ext4 userdata. - // TODO(b/135984674): get userdata fs type here, and do nothing in case of f2fs. - if (auto result = KillZramBackingDevice(); !result) { - return result; - } + // TODO(b/143970043): in case of ext4 we probably we will need to restart vold and kill zram + // backing device. if (int r = StopServicesAndLogViolations(GetDebuggingServices(true /* only_post_data */), 5s, false /* SIGKILL */); r > 0) { diff --git a/rootdir/init.rc b/rootdir/init.rc index 66d60fa2d..a8e0f5f11 100644 --- a/rootdir/init.rc +++ b/rootdir/init.rc @@ -924,7 +924,7 @@ on userspace-reboot-requested setprop sys.init.userspace_reboot_in_progress 1 setprop sys.boot_completed 0 setprop sys.init.updatable_crashing 0 - setprop apexd.status 0 + setprop apexd.status "" on userspace-reboot-fs-remount # Make sure that vold is running.