Re: adding proper O_SYNC/O_DSYNC, was Re: O_DIRECT and barriers

From: Jamie Lokier
Date: Fri Aug 28 2009 - 12:47:13 EST


Ulrich Drepper wrote:
> > - O_RSYNC basically means we need to commit atime updates before a
> > read returns, right?
>
> No, that's not it.
>
> O_RSYNC on its own just means the data is successfully transferred to
> the calling process (always the case).
>
> O_RSYNC|O_DSYNC means that if a read request hits data that is currently
> in a cache and not yet on the medium, then the write to medium is
> successful before the read succeeds.
>
> O_RSYNC|O_SYNC means the same plus the integrity of file meta
> information (access time etc).

On several unixes, O_RSYNC means it will send the read to the
hardware, not relying on the cache. This can be used to verify the
data which was written earlier, whether by O_DSYNC or fdatasync.

-- Jamie
--
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/