<br><br><div class="gmail_quote">On Fri, Jul 29, 2011 at 10:59 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">On Fri, Jul 29, 2011 at 05:15:10AM +0000, Emmanuel Dreyfus wrote:<br>
> CALL symlink(0xbfbff990,0xbfbfc91c)<br>
> MISC link-target: "i386"<br>
> NAMI "inst.04684a"<br>
> RET symlink 0<br>
> CALL __posix_rename(0xbfbfc91c,0xbfbff995)<br>
> NAMI "inst.04684a"<br>
> NAMI "machine"<br>
> RET __posix_rename -1 errno 1 Operation not permitted<br>
<br>
</div>I found a possible cause. dht code ineed takes care of the directory case:<br>
if (IA_ISDIR (oldloc->inode->ia_type)) {<br>
dht_rename_dir (frame, this);<br>
} else {<br>
local->op_ret = 0;<br>
dht_rename_create_links (frame);<br>
}<br>
<br>
But if I add a log for oldloc->inode->ia_type, I can see it is IA_IFLNK<br>
and not IA_IFDIR: this checks for the symlink instead of checking the<br>
symlink target, therefore it fails to correctly detect it is a directory.<br>
<br>
Opinions?<br>
<div><div></div><div class="h5"><br></div></div></blockquote><div><br></div><div>rename(2) can be performed on a symlink too. Hence, I guess what distribute is doing is valid here.</div><div><br></div><div>Regards,<br>Amar</div>
<div><br></div><div><br></div></div>