From: Wayne Davison Date: Sun, 22 May 2005 20:52:32 +0000 (+0000) Subject: - Don't stop deleting in a dir if one item fails. X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/commitdiff_plain/26beb7861fbcc7abec92acfe3773f8154c39fe7a - Don't stop deleting in a dir if one item fails. - Don't skip deleting in a dir if the initial rmdir fails (2.6.4 only continued if it was a non-empty error). --- diff --git a/generator.c b/generator.c index ec5a4d5a..b0744557 100644 --- a/generator.c +++ b/generator.c @@ -150,7 +150,7 @@ static int delete_item(char *fname, int mode, int flags) deletion_count--; return 0; } - if (!zap_dir || (errno != ENOTEMPTY && errno != EEXIST)) { + if (!zap_dir) { rsyserr(FERROR, errno, "delete_file: rmdir %s failed", full_fname(fname)); return -1; @@ -169,10 +169,7 @@ static int delete_item(char *fname, int mode, int flags) continue; f_name_to(fp, buf); - if (delete_item(buf, fp->mode, flags & ~DEL_TERSE) != 0) { - flist_free(dirlist); - return -1; - } + delete_item(buf, fp->mode, flags & ~DEL_TERSE); } flist_free(dirlist); @@ -265,8 +262,7 @@ static void delete_in_dir(struct file_list *flist, char *fbuf, if (flist_find(flist, fp) < 0) { int mode = fp->mode; f_name_to(fp, delbuf); - if (delete_item(delbuf, mode, DEL_FORCE_RECURSE) < 0) - break; + delete_item(delbuf, mode, DEL_FORCE_RECURSE); } }