Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Made delete_one() handle a failed rmdir on a symlink when
[rsync/rsync.git]
/
receiver.c
diff --git
a/receiver.c
b/receiver.c
index
5d19148
..
f39a9e5
100644
(file)
--- a/
receiver.c
+++ b/
receiver.c
@@
-30,6
+30,7
@@
extern struct stats stats;
extern int dry_run;
extern int am_server;
extern int relative_paths;
extern int dry_run;
extern int am_server;
extern int relative_paths;
+extern int keep_dirlinks;
extern int preserve_hard_links;
extern int preserve_perms;
extern int cvs_exclude;
extern int preserve_hard_links;
extern int preserve_perms;
extern int cvs_exclude;
@@
-59,6
+60,8
@@
static void delete_one(char *fn, int is_dir)
}
} else {
if (do_rmdir(fn) != 0) {
}
} else {
if (do_rmdir(fn) != 0) {
+ if (errno == ENOTDIR && keep_dirlinks)
+ return delete_one(fn, 0);
if (errno != ENOTEMPTY && errno != EEXIST) {
rsyserr(FERROR, errno,
"delete_one: rmdir %s failed",
if (errno != ENOTEMPTY && errno != EEXIST) {
rsyserr(FERROR, errno,
"delete_one: rmdir %s failed",