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
This commit is contained in:
Nikita Ioffe 2019-11-05 23:04:17 +00:00
parent 2aabeed1fd
commit 42697d3f18
3 changed files with 5 additions and 21 deletions

View file

@ -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;
}

View file

@ -746,23 +746,8 @@ static Result<void> 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) {

View file

@ -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.