Moved the delete-after support into generator.c.
[rsync/rsync.git] / main.c
diff --git a/main.c b/main.c
index 62a2b4d..3cc21b5 100644 (file)
--- a/main.c
+++ b/main.c
@@ -32,7 +32,6 @@ extern int am_sender;
 extern int am_generator;
 extern int am_daemon;
 extern int blocking_io;
-extern int delete_before;
 extern int remove_sent_files;
 extern int daemon_over_rsh;
 extern int need_messages_from_generator;
@@ -49,6 +48,7 @@ extern int fuzzy_basis;
 extern int relative_paths;
 extern int rsync_port;
 extern int inplace;
+extern int make_backups;
 extern int whole_file;
 extern int read_batch;
 extern int write_batch;
@@ -499,7 +499,7 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
        int status = 0;
        int error_pipe[2], name_pipe[2];
        BOOL need_name_pipe = (basis_dir[0] || partial_dir || fuzzy_basis
-                           || inplace) && !dry_run;
+                           || (inplace && make_backups)) && !dry_run;
 
        /* The receiving side mustn't obey this, or an existing symlink that
         * points to an identical file won't be replaced by the referent. */
@@ -508,11 +508,6 @@ static int do_recv(int f_in,int f_out,struct file_list *flist,char *local_name)
        if (preserve_hard_links)
                init_hard_links(flist);
 
-       if (delete_before && !local_name && flist->count > 0) {
-               /* Moved here from recv_files() to prevent a race condition */
-               delete_files(flist);
-       }
-
        if (fd_pair(error_pipe) < 0
            || (need_name_pipe && fd_pair(name_pipe) < 0)) {
                rsyserr(FERROR, errno, "pipe failed in do_recv");