On Mon, 2007-07-16 19:38:41 +0200, Thomas Glanzmann <sithglan@xxxxxxxxxxxxxxxxxxxx> wrote: > Calling unlink on a directory on a Solaris UFS filesystem as root makes it > inconsistent. Thanks to Johannes Sixt for the obvious fix. > > Signed-off-by: Thomas Glanzmann <sithglan@xxxxxxxxxxxxxxxxxxxx> > --- > entry.c | 6 +++--- > 1 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/entry.c b/entry.c > index 82bf725..907293f 100644 > --- a/entry.c > +++ b/entry.c > @@ -6,18 +6,18 @@ static void create_directories(const char *path, const struct checkout *state) > int len = strlen(path); > char *buf = xmalloc(len + 1); > const char *slash = path; > + struct stat st; Whitespace damage. > while ((slash = strchr(slash+1, '/')) != NULL) { > len = slash - path; > memcpy(buf, path, len); > buf[len] = 0; > + if (!stat(buf, &st) && S_ISDIR(st.st_mode)) > + continue; /* ok */ Dito. > if (mkdir(buf, 0777)) { > if (errno == EEXIST) { > - struct stat st; > if (len > state->base_dir_len && state->force && !unlink(buf) && !mkdir(buf, 0777)) > continue; > - if (!stat(buf, &st) && S_ISDIR(st.st_mode)) > - continue; /* ok */ > } > die("cannot create directory at %s", buf); > } MfG, JBG -- Jan-Benedict Glaw jbglaw@xxxxxxxxxx +49-172-7608481 Signature of: "really soon now": an unspecified period of time, likly to the second : be greater than any reasonable definition of "soon".
Attachment:
signature.asc
Description: Digital signature