Problem reported by Niklas Hambüchen in:
https://lists.gnu.org/r/bug-gnulib/2018-12/msg00074.html
* lib/mkdir-p.c (make_dir_parents): In diagnostic, prefer stat
errno to mkdir errno if the stat errno is likely more interesting.
+2018-12-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ mkdir-p: improve diagnostic for FUSE mounts
+ Problem reported by Niklas Hambüchen in:
+ https://lists.gnu.org/r/bug-gnulib/2018-12/msg00074.html
+ * lib/mkdir-p.c (make_dir_parents): In diagnostic, prefer stat
+ errno to mkdir errno if the stat errno is likely more interesting.
+
2018-12-14 Bruno Haible <bruno@clisp.org>
hash-map: Add tests.
if (preserve_existing)
{
- struct stat st;
- if (mkdir_errno == 0
- || (mkdir_errno != ENOENT && make_ancestor
- && stat (dir + prefix_len, &st) == 0
- && S_ISDIR (st.st_mode)))
+ if (mkdir_errno == 0)
return true;
+ if (mkdir_errno != ENOENT && make_ancestor)
+ {
+ struct stat st;
+ if (stat (dir + prefix_len, &st) == 0)
+ {
+ if (S_ISDIR (st.st_mode))
+ return true;
+ }
+ else if (mkdir_errno == EEXIST
+ && errno != ENOENT && errno != ENOTDIR)
+ {
+ error (0, errno, _("cannot stat %s"), quote (dir));
+ return false;
+ }
+ }
}
else
{