Messages in this thread | | | Date | Mon, 3 Sep 2012 15:57:56 +0200 | From | Jan Kara <> | Subject | Re: [ext3/4] PROBLEM: fdatasync not syncing appended data (w/test program) |
| |
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@suse.cz> SUSE Labs, CR
| |