secdiscard: should call fsync to avoid reordering IOs

am: 6c5e453f9e

Change-Id: I5710fcce302d040a29ff798df85bf71ef6e3fbb5
This commit is contained in:
Jaegeuk Kim 2019-08-12 11:39:56 -07:00 committed by android-build-merger
commit 732faaeb94

View file

@ -147,6 +147,10 @@ bool secdiscard_path(const std::string& path) {
if (!overwrite_with_zeros(fs_fd.get(), range[0], range[1])) return false;
}
}
// Should wait for overwrites completion. Otherwise after unlink(),
// filesystem can allocate these blocks and IO can be reordered, resulting
// in making zero blocks to filesystem blocks.
fsync(fs_fd.get());
return true;
}