From ce068c09ddee2d6dbdaebd47c8d38592b717ff65 Mon Sep 17 00:00:00 2001 From: Igor Canadi Date: Mon, 21 Apr 2014 17:47:48 -0700 Subject: [PATCH] Flush before Sync() --- util/env_posix.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/util/env_posix.cc b/util/env_posix.cc index bce9526a..9e76a126 100644 --- a/util/env_posix.cc +++ b/util/env_posix.cc @@ -761,6 +761,10 @@ class PosixWritableFile : public WritableFile { } virtual Status Sync() { + Status s = Flush(); + if (!s.ok()) { + return s; + } TEST_KILL_RANDOM(rocksdb_kill_odds); if (pending_sync_ && fdatasync(fd_) < 0) { return IOError(filename_, errno); @@ -771,6 +775,10 @@ class PosixWritableFile : public WritableFile { } virtual Status Fsync() { + Status s = Flush(); + if (!s.ok()) { + return s; + } TEST_KILL_RANDOM(rocksdb_kill_odds); if (pending_fsync_ && fsync(fd_) < 0) { return IOError(filename_, errno); -- 2.47.3