I don't like automatic header dependencies
[rsync/rsync.git] / backup.c
index ee323f3..9c6fd89 100644 (file)
--- a/backup.c
+++ b/backup.c
@@ -134,10 +134,14 @@ static int robust_move(char *src, char *dst)
        int failed;
 
        while (keep_trying) {
-               if (keep_path_extfs)
-                       failed = copy_file (src, dst, 0755);
-               else
+               if (keep_path_extfs) {
+                       failed = copy_file(src, dst, 0755);
+                       if (!failed) {
+                               do_unlink(src);
+                       }
+               } else {
                        failed = robust_rename (src, dst);
+               }
 
                if (failed) {
                        if (verbose > 2)
@@ -193,7 +197,7 @@ static int keep_backup(char *fname)
        if (do_stat (fname, &st)) return 1;
 #endif
 
-       file = make_file (0, fname);
+       file = make_file (-1, fname, 0);
 
         /* make a complete pathname for backup file */
         if (strlen(backup_dir) + strlen(fname) > (MAXPATHLEN - 1)) {