index 7512d92..67973e4 100644 --- a/backup.c +++ b/backup.c @@ -116,7 +116,7 @@ int make_bak_dir(const char *fullpath) return -1; if (*p == '/') { *p = '\0'; - if (mkdir_defmode(fbuf) == 0) + if (mkdir_defmode(fbuf) == 0 || errno == EEXIST) break; if (errno != ENOENT) { rsyserr(FERROR, errno, @@ -173,7 +173,7 @@ int make_bak_dir(const char *fullpath) p += strlen(p); if (p == end) break; - if (mkdir_defmode(fbuf) < 0) { + if (mkdir_defmode(fbuf) < 0 && errno != EEXIST) { rsyserr(FERROR, errno, "make_bak_dir mkdir %s failed", full_fname(fbuf)); return -1;