diff --git a/common/dynamic_partition_control_interface.h b/common/dynamic_partition_control_interface.h
index d5db9bc..58ebfe4 100644
--- a/common/dynamic_partition_control_interface.h
+++ b/common/dynamic_partition_control_interface.h
@@ -87,7 +87,7 @@
 
   // After writing to new partitions, before rebooting into the new slot, call
   // this function to indicate writes to new partitions are done.
-  virtual bool FinishUpdate() = 0;
+  virtual bool FinishUpdate(bool powerwash_required) = 0;
 
   // Get an action to clean up previous update.
   // Return NoOpAction on non-Virtual A/B devices.
diff --git a/common/dynamic_partition_control_stub.cc b/common/dynamic_partition_control_stub.cc
index 1239eab..903b7ee 100644
--- a/common/dynamic_partition_control_stub.cc
+++ b/common/dynamic_partition_control_stub.cc
@@ -51,7 +51,7 @@
   return true;
 }
 
-bool DynamicPartitionControlStub::FinishUpdate() {
+bool DynamicPartitionControlStub::FinishUpdate(bool powerwash_required) {
   return true;
 }
 
diff --git a/common/dynamic_partition_control_stub.h b/common/dynamic_partition_control_stub.h
index 679d028..d8e254e 100644
--- a/common/dynamic_partition_control_stub.h
+++ b/common/dynamic_partition_control_stub.h
@@ -40,7 +40,7 @@
                                   bool update,
                                   uint64_t* required_size) override;
 
-  bool FinishUpdate() override;
+  bool FinishUpdate(bool powerwash_required) override;
   std::unique_ptr<AbstractAction> GetCleanupPreviousUpdateAction(
       BootControlInterface* boot_control,
       PrefsInterface* prefs,
diff --git a/dynamic_partition_control_android.cc b/dynamic_partition_control_android.cc
index 81d0d77..09f61ad 100644
--- a/dynamic_partition_control_android.cc
+++ b/dynamic_partition_control_android.cc
@@ -624,11 +624,11 @@
   return true;
 }
 
-bool DynamicPartitionControlAndroid::FinishUpdate() {
+bool DynamicPartitionControlAndroid::FinishUpdate(bool powerwash_required) {
   if (GetVirtualAbFeatureFlag().IsEnabled() &&
       snapshot_->GetUpdateState() == UpdateState::Initiated) {
     LOG(INFO) << "Snapshot writes are done.";
-    return snapshot_->FinishedSnapshotWrites();
+    return snapshot_->FinishedSnapshotWrites(powerwash_required);
   }
   return true;
 }
diff --git a/dynamic_partition_control_android.h b/dynamic_partition_control_android.h
index a11889a..6dbe370 100644
--- a/dynamic_partition_control_android.h
+++ b/dynamic_partition_control_android.h
@@ -45,7 +45,7 @@
                                   const DeltaArchiveManifest& manifest,
                                   bool update,
                                   uint64_t* required_size) override;
-  bool FinishUpdate() override;
+  bool FinishUpdate(bool powerwash_required) override;
   std::unique_ptr<AbstractAction> GetCleanupPreviousUpdateAction(
       BootControlInterface* boot_control,
       PrefsInterface* prefs,
diff --git a/mock_dynamic_partition_control.h b/mock_dynamic_partition_control.h
index b3e0c24..169c265 100644
--- a/mock_dynamic_partition_control.h
+++ b/mock_dynamic_partition_control.h
@@ -42,7 +42,7 @@
       PreparePartitionsForUpdate,
       bool(uint32_t, uint32_t, const DeltaArchiveManifest&, bool, uint64_t*));
   MOCK_METHOD0(GetVirtualAbFeatureFlag, FeatureFlag());
-  MOCK_METHOD0(FinishUpdate, bool());
+  MOCK_METHOD1(FinishUpdate, bool(bool));
   MOCK_METHOD0(CleanupSuccessfulUpdate, ErrorCode());
   MOCK_METHOD3(GetCleanupPreviousUpdateAction,
                std::unique_ptr<AbstractAction>(
@@ -76,7 +76,7 @@
   MOCK_METHOD0(GetDynamicPartitionsFeatureFlag, FeatureFlag());
   MOCK_METHOD1(GetSuperPartitionName, std::string(uint32_t));
   MOCK_METHOD0(GetVirtualAbFeatureFlag, FeatureFlag());
-  MOCK_METHOD0(FinishUpdate, bool());
+  MOCK_METHOD1(FinishUpdate, bool(bool));
 
   void set_fake_mapped_devices(const std::set<std::string>& fake) override {
     DynamicPartitionControlAndroid::set_fake_mapped_devices(fake);
diff --git a/payload_consumer/postinstall_runner_action.cc b/payload_consumer/postinstall_runner_action.cc
index 0f48493..c08cfc2 100644
--- a/payload_consumer/postinstall_runner_action.cc
+++ b/payload_consumer/postinstall_runner_action.cc
@@ -341,7 +341,8 @@
   // steps succeeded.
   if (error_code == ErrorCode::kSuccess) {
     if (install_plan_.switch_slot_on_reboot) {
-      if (!boot_control_->GetDynamicPartitionControl()->FinishUpdate() ||
+      if (!boot_control_->GetDynamicPartitionControl()->FinishUpdate(
+              install_plan_.powerwash_required) ||
           !boot_control_->SetActiveBootSlot(install_plan_.target_slot)) {
         error_code = ErrorCode::kPostinstallRunnerError;
       } else {
