<div dir="ltr">On Thu, Sep 19, 2013 at 5:13 AM, Shyamsundar Ranganathan <span dir="ltr">&lt;<a href="mailto:srangana@redhat.com" target="_blank">srangana@redhat.com</a>&gt;</span> wrote:<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">Avati,<br>
<br>
Please find the updated patch set for review at gerrit.<br>
<a href="http://review.gluster.org/#/c/5936/" target="_blank">http://review.gluster.org/#/c/5936/</a><br>
<br>
Changes made to address the points (1) (2) and (3) below. By the usage of the suggested glfs_resolve_inode approach.<br>
<br>
I have not yet changes glfs_h_unlink to use the glfs_resolve_at. (more on this a little later).<br>
<br>
So currently, the review request is for all APIs other than,<br>
glfs_h_unlink, glfs_h_extract_gfid, glfs_h_create_from_gfid<br>
<br>
glfs_resolve_at: Using this function the terminal name will be a force look up anyway (as force_lookup will be passed as 1 based on !next_component). We need to avoid this _extra_ lookup in the unlink case, which is why all the inode_grep(s) etc. were added to the glfs_h_lookup in the first place.<br>

<br>
Having said the above, we should still leverage glfs_resolve_at anyway, as there seem to be other corner cases where the resolved inode and subvol maybe from different graphs. So I think I want to modify glfs_resolve_at to make a conditional force_lookup, based on iatt being NULL or not. IOW, change the call to glfs_resolve_component with the conditional as, (reval || (!next_component &amp;&amp; iatt)). So that callers that do not want the iatt filled, can skip the syncop_lookup.<br>

<br>
Request comments on the glfs_resolve_at proposal.<br></blockquote><div><br></div><div>That should be OK (passing iatt as NULL to skip forced lookup)</div><div><br></div><div>Avati</div><div><br></div></div></div></div>