summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Yung-Chieh Lo <yjlou@chromium.org>2013-01-16 11:52:17 +0800
committerChromeBot <chrome-bot@google.com>2013-01-22 11:48:43 -0800
commit57cdad33d6f07227f93bbc35f167d60e58b83d8b (patch)
treef4dca78cceaab5873534944ed8b02ca0541e593f
parent96d16de52ebb6785f7d34dcecc030d1b4e3f9c09 (diff)
downloadvboot-57cdad33d6f07227f93bbc35f167d60e58b83d8b.tar.gz
(modify and resend) Trigger sync right after writing.
This can trigger the sync mechanism earlier so that the kernel has enough time to schedule a real disk sync before system reboots. We sent this in CL 41269, however it is reverted because the sync() and syncfs() make test cases timeout (tons of disk access). So we only sync file itself in this CL and leave the whoe system sync outside cgpt. BUG=chromium-os:35992 TEST=make && make runtests ; and trybot BRANCH=none Change-Id: I9c6b602220131f1f011e7865788a122d4c379e73 Reviewed-on: https://gerrit.chromium.org/gerrit/41345 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Commit-Queue: Yung-Chieh Lo <yjlou@chromium.org> Tested-by: Yung-Chieh Lo <yjlou@chromium.org> Reviewed-by: Bill Richardson <wfrichar@chromium.org>
-rw-r--r--cgpt/cgpt_common.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/cgpt/cgpt_common.c b/cgpt/cgpt_common.c
index 193f2e1e..8def05ef 100644
--- a/cgpt/cgpt_common.c
+++ b/cgpt/cgpt_common.c
@@ -269,6 +269,11 @@ int DriveClose(struct drive *drive, int update_as_needed) {
}
}
+ // Sync early! Only sync file descriptor here, and leave the whole system sync
+ // outside cgpt because whole system sync would trigger tons of disk accesses
+ // and timeout tests.
+ fsync(drive->fd);
+
close(drive->fd);
if (drive->gpt.primary_header)