On Thursday 25 January 2007 20:28, Phillip Susi wrote: > > Ahhh shit, are you saying that fdatasync will wait until writes > > *by all other processes* to thios file will hit the disk? > > Is that thue? > > I think all processes yes, but certainly all writes to this file by this > process. That means you have to sync for every write, which means you > block. Blocking stalls the pipeline.
I dont understand you here. Suppose fdatasync() is "do not return until all cached writes to this file *done by current process* hit the disk (i.e. cached write data from other concurrent processes is not waited for), report succes or error code". Then write(fd_O_DIRECT, buf, sz) - will wait until buf's data hit the disk write(fd, buf, sz) - potentially will return sooner, but fdatasync(fd) - will wait until buf's data hit the disk Looks same to me. > > If you opened a file and are doing only O_DIRECT writes, you > > *always* have your written data flushed, by each write(). > > How is it different from writes done using > > "normal" write() + fdatasync() pairs? > > Because you can do writes async, but not fdatasync ( unless there is an > async version I don't know about ). You mean "You can use aio_write" ? -- vda - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/