<div dir="ltr">Thank you very much,<div>I check all of the alternative and see that xlator/mount/fuse/src/fuse-bridge  fuse_create is the first</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 30, 2017 at 5:18 PM, Niels de Vos <span dir="ltr">&lt;<a href="mailto:ndevos@redhat.com" target="_blank">ndevos@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Thu, Mar 30, 2017 at 04:59:02PM +0430, Tahereh Fattahi wrote:<br>
&gt; Yes, I know the architecture of translators, of course I dont want to<br>
&gt; create a new translator.<br>
<br>
</span>A new xlator, or an extension to an existing one (I can&#39;t think of any<br>
appropriate one though) would be the best solution.<br>
<span class=""><br>
&gt; If I understand that my idea is correct I will create one page in<br>
&gt; uder_review tab, But I am not sure, I should test.<br>
&gt; First I need to know which function firstly execute when a create operation<br>
&gt; is running?<br>
<br>
</span>There are create functions in the different &#39;master xlator&#39; (which is<br>
the xlator that starts the top of the xlator-graph). For gfapi access<br>
this is the pub_glfs_creat() or pub_glfs_open() function. There are also<br>
functions in xlators/mount/fuse/src/fuse-<wbr>bridge.c and under<br>
xlators/nfs/server/. If you place the function addition in its own<br>
xlator, it will be used by all access methods, and there would not be a<br>
need to make modifications everywhere.<br>
<span class="HOEnZb"><font color="#888888"><br>
Niels<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
&gt;<br>
&gt; On Thu, Mar 30, 2017 at 4:10 PM, Niels de Vos &lt;<a href="mailto:ndevos@redhat.com">ndevos@redhat.com</a>&gt; wrote:<br>
&gt;<br>
&gt; &gt; On Thu, Mar 30, 2017 at 03:52:39PM +0430, Tahereh Fattahi wrote:<br>
&gt; &gt; &gt; Thanks for your answer.<br>
&gt; &gt; &gt; For example I want to save the number of files in directory as one<br>
&gt; &gt; extended<br>
&gt; &gt; &gt; attribute.<br>
&gt; &gt; &gt; After every create operation, this number should be added and set as<br>
&gt; &gt; &gt; attribute, So after create I need a setxattr.<br>
&gt; &gt; &gt; But I dont know where this create is completed, I tested in dht<br>
&gt; &gt; translator<br>
&gt; &gt; &gt; and it was false because the creation is not complete in this translator.<br>
&gt; &gt;<br>
&gt; &gt; Each xlator receives the create procedure (and its callback). The<br>
&gt; &gt; &quot;Glustr way&quot; of doing this, could be to write your own xlator. Because<br>
&gt; &gt; this is a functionality we would like to see too, it would be a great<br>
&gt; &gt; opportunity to contribute such an xlator (or other approach?).<br>
&gt; &gt;<br>
&gt; &gt; My take on the functionality, is that the number of entries in a<br>
&gt; &gt; directory can be represented as (struct stat)-&gt;st_size of a directory<br>
&gt; &gt; inode. The Gluster internal representation could be stored as an xattr.<br>
&gt; &gt;<br>
&gt; &gt; You seem to be interested in implementing such a feature. If you write<br>
&gt; &gt; an email to this list with your proposal, we can work with you to get<br>
&gt; &gt; this included in one of the next versions.<br>
&gt; &gt;<br>
&gt; &gt; Once the approach has been settled upon, you can write a little design<br>
&gt; &gt; document for the glusterfs-specs repository [0].<br>
&gt; &gt;<br>
&gt; &gt; HTH,<br>
&gt; &gt; Niels<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; 0. <a href="https://github.com/gluster/glusterfs-specs" rel="noreferrer" target="_blank">https://github.com/gluster/<wbr>glusterfs-specs</a> (use Gerrit to post docs)<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Thu, Mar 30, 2017 at 3:44 PM, Niels de Vos &lt;<a href="mailto:ndevos@redhat.com">ndevos@redhat.com</a>&gt; wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Thu, Mar 30, 2017 at 07:03:28AM +0430, Tahereh Fattahi wrote:<br>
&gt; &gt; &gt; &gt; &gt; Hi<br>
&gt; &gt; &gt; &gt; &gt; I want after create any file, do one setxattr automatically , where<br>
&gt; &gt; and<br>
&gt; &gt; &gt; &gt; how<br>
&gt; &gt; &gt; &gt; &gt; I should add this operation, and in which translator?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; We would like to add support for compound (or composite) FOPs through<br>
&gt; &gt; &gt; &gt; libgfapi. This is currently not available yet, and I do not think<br>
&gt; &gt; anyone<br>
&gt; &gt; &gt; &gt; started working on it.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Could you explain a little more about your use case for this? Concrete<br>
&gt; &gt; &gt; &gt; examples will help in understanding and pointing you to potential<br>
&gt; &gt; &gt; &gt; alternative solutions.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks,<br>
&gt; &gt; &gt; &gt; Niels<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt;<br>
</div></div></blockquote></div><br></div>