Would be nice if fuse could support following options :
- entry_timeout (entry_valid fuse field)
- attr_timeout (attr_valid fuse field)
From Linux mount.fuse man :
The timeout in seconds for which name lookups will be cached.
The timeout in seconds for which file/directory attributes are cached.
This would help some fuse FS to work correctly, for example the encfs reverse mode, which relies on both of them set to 0.
Related bug : https://github.com/vgough/encfs/issues/315
Many thanks !
Here is a test case for this request report :
# Create a Fuse EncFS in reverse mode (will give an encrypted view of the plain folder) :
mkdir -p $plain $ciphr
encfs --extpass="echo test" --standard $plain $ciphr --reverse
# Update a file in the plain folder
while [ 1 ]; do echo >>$plain/file ; sleep 0.5; done
# Monitor the files in the encrypted view :
while [ 1 ]; do clear; stat $ciphr/*; sleep 0.5; done
As you can see, the timestamps correctly get updated, but not the sizes.
It's then dangerous because if you open the encrypted file
(using dd for example, dd if=$ciphr/... of=/dev/null),
it will then be truncated (!) to the size being displayed by stat,
whereas it was in reality much bigger, as its plain version was growing.
I found fuse sysctls, some are cache related, but no benefit.
Adding "-o attr_timeout=0 -o entry_timeout=0" to the encfs command
in Linux makes this to work.
Thank you !
*** This bug has been marked as a duplicate of bug 230258 ***