<br><br><div class="gmail_quote">On Mon, Nov 28, 2011 at 10:46 AM, Emmanuel Dreyfus <span dir="ltr"><<a href="mailto:manu@netbsd.org">manu@netbsd.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Emmanuel Dreyfus <<a href="mailto:manu@netbsd.org">manu@netbsd.org</a>> wrote:<br>
<br>
> Looking at FUSE exchanges, I can see that after machine2 replaced the<br>
> node, machine1 gets the new inode number using READDIR, but the inode<br>
> number returned by LOOKUP is the one for the deleted node. The only way<br>
> to work it around is to unmount and remount the filesystem.<br>
<br>
</div>Below is a change that seems to fix the issue. I was figuring if this could<br>
not have nasty side effects and then I had the idea to check latest code in<br>
git: the exact same fix is already there.<br>
<br>
Are there related changes that should be bundled with that one in order to<br>
have the thing working properly?<br>
<br>
--- xlators/protocol/client/src/client3_1-fops.c.orig<br>
+++ xlators/protocol/client/src/client3_1-fops.c<br>
@@ -2210,9 +2210,11 @@<br>
if ((!uuid_is_null (inode->gfid))<br>
&& (uuid_compare (stbuf.ia_gfid, inode->gfid) != 0)) {<br>
gf_log (frame->this->name, GF_LOG_WARNING,<br>
"gfid changed for %s", local->loc.path);<br>
- memcpy(&stbuf.ia_gfid, &inode->gfid, sizeof(inode->gfid));<br>
+ rsp.op_ret = -1;<br>
+ op_errno = ESTALE;<br>
+ goto out;<br>
}<br>
<br>
rsp.op_ret = 0;<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div><br></div><div>I figure this is because you have <a href="http://review.gluster.com/231">http://review.gluster.com/231</a> in your testing tree? That change leads to exactly the behavior you described. We need to revisit the need for that patch.</div>
<div><br></div><div>Avati </div></div>