Only call cleanup_set() if keep_partial is set.
[rsync/rsync.git] / receiver.c
index 4a67c61..805f0f6 100644 (file)
@@ -354,6 +354,8 @@ static void handle_delayed_updates(struct file_list *flist, char *local_name)
                                        safe_fname(partialptr),
                                        safe_fname(fname));
                        }
+                       /* We don't use robust_rename() here because the
+                        * partial-dir must be on the same drive. */
                        if (do_rename(partialptr, fname) < 0) {
                                rsyserr(FERROR, errno,
                                        "rename failed for %s (from %s)",
@@ -656,7 +658,7 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
                                continue;
                        }
 
-                       if (partialptr)
+                       if (keep_partial)
                                cleanup_set(fnametmp, partialptr, file, fd1, fd2);
                }