Commit 26beb786 authored by Wayne Davison's avatar Wayne Davison

- 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).
parent 6e8b9f13
......@@ -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);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment