safe_create_leading_directories: fix race that could give a false negative
commit928734d99370e2478e3b3881e5b0aa79745ac27c
authorSteven Walter <stevenrwalter@gmail.com>
Sun, 17 Mar 2013 14:09:27 +0000 (17 10:09 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 27 Mar 2013 04:07:42 +0000 (26 21:07 -0700)
tree02fc0e4df6299e6a0ad5899da422742469bd3444
parent7e2010537e96d0a1144520222f20ba1dc3d61441
safe_create_leading_directories: fix race that could give a false negative

If two processes are racing to create the same directory tree, they
will both see that the directory doesn't exist, both try to mkdir(),
and one of them will fail.  This is okay, as we only care that the
directory gets created.  So, we add a check for EEXIST from mkdir,
and continue when the directory exists, taking the same codepath as
the case where the earlier stat() succeeds and finds a directory.

Signed-off-by: Steven Walter <stevenrwalter@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sha1_file.c