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

From: Jan Kara
Date: Mon Aug 24 2009 - 05:29:16 EST


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@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/