mirror of
https://github.com/Evolution-X-Devices/device_google_taimen
synced 2026-01-27 15:59:12 +00:00
taimen: gpt-utils: fsync after block device writes
When markBoolSuccessful is invoked, we update the partition table. These writes should be synced before merge operation is resumed post OTA. If not, any crash before these writes are landed to backing storage will lead to incorrect switching of slots. BUG: 175711601 Test: Verify slot switching correctly after crash when merge in progress (on redbull) Signed-off-by: Akilesh Kailash <akailash@google.com> Change-Id: I4d30342b44aaeb7a4fdc915cc1e53ffb20c17a2f
This commit is contained in:
committed by
Asriadi Rahim
parent
e28d504d68
commit
4112681d3e
@@ -157,11 +157,18 @@ static int blk_rw(int fd, int rw, int64_t offset, uint8_t *buf, unsigned len)
|
||||
else
|
||||
r = read(fd, buf, len);
|
||||
|
||||
if (r < 0)
|
||||
if (r < 0) {
|
||||
fprintf(stderr, "block dev %s failed: %s\n", rw ? "write" : "read",
|
||||
strerror(errno));
|
||||
else
|
||||
r = 0;
|
||||
} else {
|
||||
if (rw) {
|
||||
r = fsync(fd);
|
||||
if (r < 0)
|
||||
fprintf(stderr, "fsync failed: %s\n", strerror(errno));
|
||||
} else {
|
||||
r = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user