]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
FileJournal: check fsync/fdatasync result.
authorJianpeng Ma <jianpeng.ma@intel.com>
Tue, 13 Jan 2015 07:51:51 +0000 (15:51 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 13 Jan 2015 07:51:51 +0000 (15:51 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/os/FileJournal.cc

index 759e96219e69d518279603164e01617de9175780..71a3abae1cdefcb7f55fd3543d1d3e09c6776af9 100644 (file)
@@ -1073,11 +1073,16 @@ void FileJournal::do_write(bufferlist& bl)
      * NOTE: using sync_file_range here would not be safe as it does not
      * flush disk caches or commits any sort of metadata.
      */
+    int ret = 0;
 #if defined(DARWIN) || defined(__FreeBSD__)
-    ::fsync(fd);
+    ret = ::fsync(fd);
 #else
-    ::fdatasync(fd);
+    ret = ::fdatasync(fd);
 #endif
+    if (ret < 0) {
+      derr << __func__ << " fsync/fdatasync failed: " << cpp_strerror(errno) << dendl;
+      ceph_abort();
+    }
 #ifdef HAVE_POSIX_FADVISE
     if (g_conf->filestore_fadvise)
       posix_fadvise(fd, 0, 0, POSIX_FADV_DONTNEED);