Andrew Morton wrote: > > Does this patch help? I won't, I suspect. You've done an O_SYNC write. ext3 needs to write your data out to disk before returning from the pwrite() call. We do that by running a commit and waiting for it to complete. In ordered mode, commit will writeback and wait upon your newly-dirtied data. That's what you asked it to do. Other filesystems will do it by directly writing the data and waiting on it. We've lost some concurrency because the journal is busy, but in practice I suspect it won't make much difference. Are you sure that you actually have a problem? Does your application run significantly more quickly on ext2? (I now need to know your exact kernel version - there have been various goofups on the sync paths which were fixed relatively recently). I suspect that ext3 is doing an unnecessary commit on the fsync() case, and in the O_SYNC case, for your application. If the mtime fix is in place then we can try to drop all the ordered-mode data buffers from the transaction (which will succeed) and then look to see if there's anything to be committed (there will not be). hmm.