575ae72270
FUSE filesystems assume that SETATTR with atime is the result of utiimes() being called. As a result, atime and mtime will be updated. This happens with MooseFS and glusterFS. atime is supposed to be updated by the filesystem itself when it gets read operations. We fix the problem in SETATTR operations by 1) do not create a mtime update when we have an atime update (and vice versa), just fill the fields to avoid the filesystem restting the missing field to Epoch, but do not pretend we want to update it. 2) If the change is limited to atime, iscard it, as updates should be done by READ operations 3) Kernel part of PUFFS has been fixed to make sure reads on empty file are sent to the filesystem: http://mail-index.netbsd.org/source-changes/2015/01/13/msg062364.html Thanks to Tom Ivar Helbekkmo for reporting this issue. |
||
---|---|---|
.. | ||
Makefile | ||
debug.c | ||
fuse.h | ||
libperfuse.3 | ||
ops.c | ||
perfuse.c | ||
perfuse.h | ||
perfuse_if.h | ||
perfuse_priv.h | ||
shlib_version | ||
subr.c |