bootctrl: enforce synchronous write operation

Bug: 197104397
Signed-off-by: Oleg Matcovschi <omatcovschi@google.com>
Change-Id: Ifbc612fc40847395ccb751463b1bb15bd3f20657
diff --git a/interfaces/boot/1.2/BootControl.cpp b/interfaces/boot/1.2/BootControl.cpp
index 70b9594..a28be05 100644
--- a/interfaces/boot/1.2/BootControl.cpp
+++ b/interfaces/boot/1.2/BootControl.cpp
@@ -162,7 +162,7 @@
         return false;
     }
 
-    android::base::unique_fd fd(open(DEVINFO_PATH, O_WRONLY));
+    android::base::unique_fd fd(open(DEVINFO_PATH, O_WRONLY | O_DSYNC));
     return android::base::WriteFully(fd, &devinfo, sizeof devinfo);
 }
 
@@ -270,13 +270,13 @@
 
     std::string boot_lun_path =
             std::string("/sys/devices/platform/") + boot_dev + "/pixel/boot_lun_enabled";
-    int fd = open(boot_lun_path.c_str(), O_RDWR);
+    int fd = open(boot_lun_path.c_str(), O_RDWR | O_DSYNC);
     if (fd < 0) {
         // Try old path for kernels < 5.4
         // TODO: remove once kernel 4.19 support is deprecated
         std::string boot_lun_path =
                 std::string("/sys/devices/platform/") + boot_dev + "/attributes/boot_lun_enabled";
-        fd = open(boot_lun_path.c_str(), O_RDWR);
+        fd = open(boot_lun_path.c_str(), O_RDWR | O_DSYNC);
         if (fd < 0) {
             _hidl_cb({false, "failed to open ufs attr boot_lun_enabled"});
             return Void();