<div class="gmail_quote">On Thu, Sep 23, 2010 at 6:20 AM, Jeff Fellin <span dir="ltr">&lt;<a href="mailto:jkf@research.att.com">jkf@research.att.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
The backup test was failing because it didn&#39;t create a subdirectory. In tracing the code I realized the problem was in robust_move() in backup.c. UWIN returns ENOTDIR, when the rename(2) is called when a directory component is not in the new pathname.</blockquote>
<div><br></div><div>I believe that ENOTDIR should only be returned if some component in the path exists but is not a directory.  If the path is not fully there, it should instead return ENOENT.  For 3.0.x, I don&#39;t want to treat ENOTDIR as a valid return because it is indicating a path failure that the 3.0.x code cannot handle (since it doesn&#39;t try to fix conflicting backup paths).  The 3.1.0 code (in git) validates the backup paths to ensure that any conflicting bits turn into dirs (e.g. it will avoid an accidental use of a symlink as a dir in the path), and I&#39;d imagine that this code should work fine in your environment.</div>
<div><br></div></div>..wayne..<br>