[Gluster-devel] write-behind bug with ftruncate

Emmanuel Dreyfus manu at netbsd.org
Mon Jul 18 07:18:59 UTC 2011

On Sun, Jul 17, 2011 at 02:13:38PM +0200, Emmanuel Dreyfus wrote:
> > The sin is therefore to set FATTR_ATIME | FATTR_MTIME, while glusterfs
> > assumes this is a ftruncate() calls because only FATTR_SIZE is set. Am I
> > correct?
> I "fixed" NetBSD FUSE so that FATTR_ATIME | FATTR_MTIME are removed when
> FATTR_SIZE is set but not FATTR_UID, FATTR_GID and FATTR_MODE. It seems
> to work.

Modifying NetBSD FUSE so that it matches Linux bahavior fixes the 
problem, but I beleive glusters dangerously relies on an undocumented 
behavior here. The Linux kernel could one day decide to sync atime and 
mtime with any SETATTR, just like NetBSD does. You may consider changing 
the code to remove this assumed behavior.

Emmanuel Dreyfus
manu at netbsd.org

More information about the Gluster-devel mailing list