Most filesystems (ntfs-3g included) cannot be modified from the
outside, so coherency isn't an issue.
Otherwise currently fuse provides rather crude settings for caching:
- timeout for attributes (per-inode, default 1s)
- timeout for names (per-dentry, default 1s)
- page cache is bypassed completely (per-file, default off)
- invalidation of page cache on open (per-open, default on)
Writes are synchronous even in the caching case, for various reasons.
That is one of the reasons why write performance can be worse than
read performance. For some filesystems (ntfs-3g), this limitation
could be lifted, but that requires that the mtime handling be moved to
the kernel in these cases, which is not yet possible.
There are also plans to add some sort of cache coherency protocol,
where the filesystem can asynchronously call back to fuse to
invalidate data or metadata.
Sshfs is not coherent (but neither is NFS), it just has timeouts for
caches and invalidation based on modification time.
Miklos
--