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

Commit 42697d3f authored by Nikita Ioffe's avatar Nikita Ioffe
Browse files

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
parent 2aabeed1
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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;
}
+2 −17
Original line number Diff line number Diff line
@@ -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) {
+1 −1
Original line number Diff line number Diff line
@@ -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.