bootctrl: enforce synchronous write operation am: 354f3c6d2e

Original change: https://googleplex-android-review.googlesource.com/c/device/google/gs101/+/15641057

Change-Id: I268eb006ee3ba4d479317fb00c233a3f5101ae58
This commit is contained in:
Oleg Matcovschi 2021-08-21 06:52:23 +00:00 committed by Automerger Merge Worker
commit ca48019151

View file

@ -162,7 +162,7 @@ static bool DevInfoSync() {
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 @@ Return<void> BootControl::setActiveBootSlot(uint32_t slot, setActiveBootSlot_cb
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();