I can't believe it - solaris allows unlink of a non-empty directory as
authorAndrew Tridgell <tridge@samba.org>
Mon, 24 Jan 2000 09:13:39 +0000 (09:13 +0000)
committerAndrew Tridgell <tridge@samba.org>
Mon, 24 Jan 2000 09:13:39 +0000 (09:13 +0000)
root, leaving a corrupt filesystem. Are those guys on drugs?

try to avoid the problem as best we can.

rsync.c

diff --git a/rsync.c b/rsync.c
index 039e1cd5508785535eaa5b02f93ed1c23cd6932c..ce8e9018d2b8164635198aef2e8a8992ee06266d 100644 (file)
--- a/rsync.c
+++ b/rsync.c
@@ -56,8 +56,6 @@ int delete_file(char *fname)
        int ret;
        extern int recurse;
 
-       if (robust_unlink(fname) == 0 || errno == ENOENT) return 0;
-
 #if SUPPORT_LINKS
        ret = do_lstat(fname, &st);
 #else
@@ -69,6 +67,7 @@ int delete_file(char *fname)
        }
 
        if (!S_ISDIR(st.st_mode)) {
+               if (robust_unlink(fname) == 0 || errno == ENOENT) return 0;
                rprintf(FERROR,"unlink(%s) : %s\n", fname, strerror(errno));
                return -1;
        }