Messages in this thread | | | Date | Mon, 24 Aug 2009 11:29:05 +0200 | From | Jan Kara <> | Subject | Re: [PATCH 0/17] Make O_SYNC handling use standard syncing path (Version 2) |
| |
On Sat 22-08-09 17:27:11, Jamie Lokier wrote: > Jan Kara wrote: > > The patch set unifines O_SYNC handling with standard fsync() path. After this, > > we have just one place forcing a single file to disk so filesystems like ext3 / > > ext4 don't have to force a transaction commit in ext?_file_write for O_SYNC > > files / IS_SYNC inodes. The code is also cleaner this way (actually about 150 > > lines shorter), we don't sync the inode several times as it happened previously > > etc. > > Afaik, O_SYNC requires just the written data to be committed to disk, > but fsync() requires all dirty data for the file (including written by > other processes / descriptors) to be committed to disk. > > So doing the equivalent of fsync() after write might be the wrong > thing to do. It's OK, we essentially end up doing fdatasync() on the range of the file where the write happened. So no unnecessary writing happens.
Honza -- Jan Kara <jack@suse.cz> SUSE Labs, CR
| |