<br><br><div class="gmail_quote">On Mon, Jul 18, 2011 at 12:48 PM, Emmanuel Dreyfus <span dir="ltr">&lt;<a href="mailto:manu@netbsd.org">manu@netbsd.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Sun, Jul 17, 2011 at 02:13:38PM +0200, Emmanuel Dreyfus wrote:<br>
&gt; &gt; The sin is therefore to set FATTR_ATIME | FATTR_MTIME, while glusterfs<br>
&gt; &gt; assumes this is a ftruncate() calls because only FATTR_SIZE is set. Am I<br>
&gt; &gt; correct?<br>
&gt;<br>
&gt; I &quot;fixed&quot; NetBSD FUSE so that FATTR_ATIME | FATTR_MTIME are removed when<br>
&gt; FATTR_SIZE is set but not FATTR_UID, FATTR_GID and FATTR_MODE. It seems<br>
&gt; to work.<br>
<br>
</div>Modifying NetBSD FUSE so that it matches Linux bahavior fixes the<br>
problem, but I beleive glusters dangerously relies on an undocumented<br>
behavior here. The Linux kernel could one day decide to sync atime and<br>
mtime with any SETATTR, just like NetBSD does. You may consider changing<br>
the code to remove this assumed behavior.<br><font class="Apple-style-span" color="#888888"><br></font></blockquote><div><br></div><div>I still do not see a problem here. Gluster is not relying on any undocumented behavior. If a SETATTR call is sent with both atime/mtime and size, Gluster replies only after performing actions for all of those bits. Whether it performs the actions in two separate internal calls or one is of no concern to FUSE. Can you please describe what was the change you performed in your FUSE implementation?</div>
<div><br></div><div>Avati</div></div>