Re: [PATCH 0/17] Make O_SYNC handling use standard syncing path (Version 2)

Jan Kara
2009-08-24T09:29:09Z

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