Don't FinishUpdate() in BootControl*::SetActiveBootSlot()
Instead, callers call GetDynamicPartitionControl()->FinishUpdate()
directly.
This is one more step forward for keeping BootControlAndroid a thin
wrapper over the boot control HAL.
Test: builds
Test: update_engine_unittests
Change-Id: I95773ed7f230d1a666d5391bec7783e42b90bf64
diff --git a/boot_control_android.cc b/boot_control_android.cc
index 9f736b7..429de6a 100644
--- a/boot_control_android.cc
+++ b/boot_control_android.cc
@@ -120,10 +120,6 @@
}
bool BootControlAndroid::SetActiveBootSlot(Slot slot) {
- if (slot != GetCurrentSlot() && !dynamic_control_->FinishUpdate()) {
- return false;
- }
-
CommandResult result;
auto ret = module_->setActiveBootSlot(slot, StoreResultCallback(&result));
if (!ret.isOk()) {
diff --git a/payload_consumer/postinstall_runner_action.cc b/payload_consumer/postinstall_runner_action.cc
index a782b8f..1367649 100644
--- a/payload_consumer/postinstall_runner_action.cc
+++ b/payload_consumer/postinstall_runner_action.cc
@@ -339,7 +339,8 @@
// steps succeeded.
if (error_code == ErrorCode::kSuccess) {
if (install_plan_.switch_slot_on_reboot) {
- if (!boot_control_->SetActiveBootSlot(install_plan_.target_slot)) {
+ if (!boot_control_->GetDynamicPartitionControl()->FinishUpdate() ||
+ !boot_control_->SetActiveBootSlot(install_plan_.target_slot)) {
error_code = ErrorCode::kPostinstallRunnerError;
}
} else {