On Mon 03-09-12 10:45:15, Kristian Nielsen wrote: > It appears that ext3 and ext4 fdatasync() does not fully sync data to > disk. Specifically, when new data is written at the end (so that the file > length is increased), not all of the new data is synced by fdatasync(). > > It looks as if the problem is when the new data fits in the last allocated > page for the file - then ext3/4 flushes the new data page to disk, but _not_ > the new metadata with the longer file size. Thanks for the detailed analysis. This is indeed a genuine bug. While fixing some fsync issues I introduced (or better didn't fix) this problem. The culprit is that we forget to update i_datasync_tid when we change only inode size. Thus inode is not forced to disk during fdatasync(). I will send fixes for this in a moment. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html