Does Btrfs have data=ordered mode like Ext3?
In v0.16, Btrfs waits until data extents are on disk before updating metadata. This ensures that stale data isn’t exposed after a crash, and that file data is consistent with the checksums stored in the btree after a crash. Note that you may get zero-length files after a crash, see the next questions for more info. Btrfs does not force all dirty data to disk on every fsync or O_SYNC operation, fsync is designed to be fast.