]> git-server-git.apps.pok.os.sepia.ceph.com Git - rocksdb.git/commitdiff
Flush before Sync()
authorIgor Canadi <icanadi@fb.com>
Tue, 22 Apr 2014 00:47:48 +0000 (17:47 -0700)
committerIgor Canadi <icanadi@fb.com>
Tue, 22 Apr 2014 00:47:48 +0000 (17:47 -0700)
util/env_posix.cc

index bce9526a63b5c2522ff48503324e54d70876582d..9e76a126dcd4cbb8db685f2d705b3f02726dc655 100644 (file)
@@ -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);