]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
os/newstore: use fdatasync instead of fsync
authorSage Weil <sage@redhat.com>
Wed, 15 Apr 2015 22:35:16 +0000 (15:35 -0700)
committerSage Weil <sage@redhat.com>
Tue, 1 Sep 2015 17:39:38 +0000 (13:39 -0400)
On XFS at least, fdatasync is sufficient to make data readable.

Signed-off-by: Sage Weil <sage@redhat.com>
src/os/newstore/NewStore.cc

index de5ff20d7872152cdd3077a6baed2a56377eaeff..9959a6795b5d0e81694720d8d35fcdf8fb9c39af 100644 (file)
@@ -2352,7 +2352,7 @@ int NewStore::_do_wal_transaction(wal_transaction_t& wt)
   for (vector<int>::iterator p = sync_fds.begin();
        p != sync_fds.end();
        ++p) {
-    int r = ::fsync(*p);
+    int r = ::fdatasync(*p);
     assert(r == 0);
     VOID_TEMP_FAILURE_RETRY(::close(*p));
   }
@@ -2446,7 +2446,7 @@ int NewStore::queue_transactions(
     for (list<fsync_item>::iterator p = txc->fds.begin();
         p != txc->fds.end(); ++p) {
       dout(30) << __func__ << " fsync " << p->fd << dendl;
-      int r = ::fsync(p->fd);
+      int r = ::fdatasync(p->fd);
       if (r < 0) {
        r = -errno;
        derr << __func__ << " fsync: " << cpp_strerror(r) << dendl;