Re: How to flush data to disk reliably?

From: Alan Cox
Date: Mon May 02 2005 - 13:01:26 EST


> I am asking how to flush the data from these logs to disk. I know of
> several methods:
> 1. open with O_SYNC,
> 2. sync(2),
> 3. fsync,
> 4. fdatasync,
> 5. msync (if they are mmaped).
>
> Which of these are best and most reliable for (a/b) and for (IDE/SCSI)?

For scsi the combination of O_SYNC and ext3 or fsync and ext3 should be
reliable. fdatasync doesn't write back all the metadata so depending on
the use may not be sufficient. FAT based fs's I believe you need a
current kernel for full O_SYNC behaviour.

> What are differences between them?

See the manual pages and/or standard.

> other precautions that I should be aware of? What about write caches? Are
> write barriers implemented (on IDE and SATA/SCSI) or should I turn caches
> off?

SCSI shoule be fine, IDE turn off the write cache.


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