From: Junio C Hamano Date: Mon, 06 Jan 2014 18:21:17 GMT Subject: Re: [PATCH v2 17/17] rename_tmp_log(): on SCLD_VANISHED, retry Message-ID: In-Reply-To: <1389015935-21936-18-git-send-email-mhagger@alum.mit.edu> Michael Haggerty writes: > If safe_create_leading_directories() fails because a file along the > path unexpectedly vanished, try again from the beginning. Try at most > 3 times. As the previous step bumped it from 3 to 4 without explanation, the above no longer reflects reality ;-) The series mostly looked sane from a cursory read. Will re-queue. Thanks. > > Signed-off-by: Michael Haggerty > --- > refs.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/refs.c b/refs.c > index 490525a..810f802 100644 > --- a/refs.c > +++ b/refs.c > @@ -2533,7 +2533,14 @@ static int rename_tmp_log(const char *newrefname) > int attempts = 4; > > retry: > - if (safe_create_leading_directories(git_path("logs/%s", newrefname))) { > + switch (safe_create_leading_directories(git_path("logs/%s", newrefname))) { > + case SCLD_OK: > + break; /* success */ > + case SCLD_VANISHED: > + if (--attempts > 0) > + goto retry; > + /* fall through */ > + default: > error("unable to create directory for %s", newrefname); > return -1; > }