]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
journal: sync_file_range on bdev, fdatasync on file
authorSage Weil <sage@newdream.net>
Mon, 1 Feb 2010 19:57:47 +0000 (11:57 -0800)
committerSage Weil <sage@newdream.net>
Mon, 1 Feb 2010 21:50:14 +0000 (13:50 -0800)
src/os/FileJournal.cc

index 2beb4fa138c82eed96b41fe3e8993196fc014698..f5c9a28acef4916e63626a912a370986455ceb21 100644 (file)
@@ -534,9 +534,11 @@ void FileJournal::do_write(bufferlist& bl)
 #ifdef DARWIN
     ::fsync(fd);
 #else
-    ::fdatasync(fd);
-    //::sync_file_range(fd, write_pos, bl.length(),
-    //SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER);
+    if (is_bdev)
+      ::sync_file_range(fd, write_pos, bl.length(),
+                       SYNC_FILE_RANGE_WAIT_BEFORE|SYNC_FILE_RANGE_WRITE|SYNC_FILE_RANGE_WAIT_AFTER);
+    else
+      ::fdatasync(fd);
 #endif
   }