> Correct, in the current 2.4.x code, its a quirk. fsync(any object) ==
> fsync(all pending metadata, including renames).
This does not help. The MTAs are doing fsync() on the temporary file
and then using the *subsequent* rename() as the committing operation.
> Anyway, during a rename, this patch updates the inode transaction
> tracking stuff so an fsync on the file should also commit the
> directory changes. But, that isn't something I really intend to
> advertise much, since the accepted linux way is fsync(dir).
It would be nice to have an option (on either the directory or the
mountpoint) to cause all metadata updates to commit to the journal
without causing all operations to be fully synchronous. This would
provide compatibility with BSD-centric code without taking the
performance hit of synchronous data. Heck, just having link() and
rename() perform a commit would be good enough for almost all
applications.
- Pat
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/