From: Sage Weil Date: Wed, 15 Apr 2015 22:35:16 +0000 (-0700) Subject: os/newstore: use fdatasync instead of fsync X-Git-Tag: v9.1.0~242^2~62 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=04f55d8d18b081d94650f6561efdb4e143d8e1d0;p=ceph.git os/newstore: use fdatasync instead of fsync On XFS at least, fdatasync is sufficient to make data readable. Signed-off-by: Sage Weil --- diff --git a/src/os/newstore/NewStore.cc b/src/os/newstore/NewStore.cc index de5ff20d787..9959a6795b5 100644 --- a/src/os/newstore/NewStore.cc +++ b/src/os/newstore/NewStore.cc @@ -2352,7 +2352,7 @@ int NewStore::_do_wal_transaction(wal_transaction_t& wt) for (vector::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::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;