<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">
&gt; &gt;<br>
&gt; &gt;         Introduce a key in xdata &quot;force-open&quot; in open fop and if that<br>
&gt; &gt;         key is set, make open-behind to not to delay open.<br>
&gt; &gt;<br>
&gt; &gt;     But the problem is syncop_open () does not send any dictionary (it<br>
&gt; &gt;     will be NULL). We can make open-behind<br>
&gt; &gt;     check whether xdata is NULL and if so, consider that open call be<br>
&gt; &gt;     generated internally (not from application) and wind it to the<br>
&gt; &gt;     below xlator.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; Hmm.. I am not too sure whether we can rely on the interpretation that<br>
&gt; &gt; xdata being  NULL means to force open in open-behind. There definitely<br>
&gt; &gt; are/will be other use-cases of syncop-open where some might<br>
&gt; &gt; inadvertently leave xdata NULL. It always helps in terms of<br>
&gt; &gt; understandability, to be explicit on what we want to do. Can&#39;t you<br>
&gt; &gt; create an xdata in fuse fd migration code and pass that down to<br>
&gt; &gt; syncop-open?<br>
&gt; Whoever calls syncop_open does not send the xdata as the arugement at<br>
&gt; all. It will be like this.<br>
&gt; ret = syncop_open (new_subvol, &amp;loc, flags, newfd);<br>
&gt;<br>
&gt; The syncop framework itself sends the xdata as NULL while winding the<br>
&gt; call (making syncop framework allocate a new dict before winding and<br>
&gt; send it as an argument also wont work in this case, as fuse wont be able<br>
&gt; to set any new key).<br>
<br>
</div></div>Since syncops are synchronous counterparts of asynchronous fops, I think we can add an xdata as the argument. How about adding an xdata argument to syncops just the way each fop does?<br>
<br>
Others,<br>
Do you&#39;ve any comments or reservations on this?<br>
<div class="im"><br></div></blockquote><div><br></div><div>I too think adding  (xdata_req, &amp;xdata_rsp) argument to all the syncops is a good idea. That way it will be more closer to the xlator-&gt;fops counterparts.</div>
<div><br></div><div>Regards,</div><div>Amar</div></div></div></div>