Add timeout to OpenCowWriter

Without a timeout, update_engine might observe race conditions where a
device is mapped but it doesn't appear on filesystem yet.

Bug: 168554689
Test: treehugger
Change-Id: I91f7cd82f5a10a8d60bdb157a57bfcbbc5c9f964
diff --git a/aosp/dynamic_partition_control_android.cc b/aosp/dynamic_partition_control_android.cc
index d461807..d296c53 100644
--- a/aosp/dynamic_partition_control_android.cc
+++ b/aosp/dynamic_partition_control_android.cc
@@ -1250,11 +1250,11 @@
       .metadata_slot = target_slot_,
       .partition_name = partition_name + suffix,
       .force_writable = true,
-  };
+      .timeout_ms = kMapSnapshotTimeout};
   // TODO(zhangkelvin) Open an APPEND mode CowWriter once there's an API to do
   // it.
   return snapshot_->OpenSnapshotWriter(params, std::move(source_path));
-}
+}  // namespace chromeos_update_engine
 
 std::optional<base::FilePath> DynamicPartitionControlAndroid::GetSuperDevice() {
   std::string device_dir_str;
@@ -1268,7 +1268,7 @@
 }
 
 bool DynamicPartitionControlAndroid::MapAllPartitions() {
-  return snapshot_->MapAllSnapshots();
+  return snapshot_->MapAllSnapshots(kMapSnapshotTimeout);
 }
 
 }  // namespace chromeos_update_engine