Got rid of a redundant mtime check.
[rsync/rsync.git] / generator.c
index 24435ea..f364eef 100644 (file)
@@ -517,6 +517,14 @@ static void do_delete_pass(void)
 
 int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp)
 {
+#ifndef HAVE_LUTIMES
+       if (S_ISLNK(file->mode)) {
+               ;
+       } else
+#endif
+       if (preserve_times && cmp_time(sxp->st.st_mtime, file->modtime) != 0)
+               return 0;
+
        if (preserve_perms && !BITS_EQUAL(sxp->st.st_mode, file->mode, CHMOD_BITS))
                return 0;
 
@@ -895,9 +903,6 @@ static int try_dests_reg(struct file_struct *file, char *fname, int ndx,
                case 2:
                        if (!unchanged_attrs(cmpbuf, file, sxp))
                                continue;
-                       if (always_checksum > 0 && preserve_times
-                        && cmp_time(sxp->st.st_mtime, file->modtime))
-                               continue;
                        best_match = j;
                        match_level = 3;
                        break;
@@ -2027,14 +2032,8 @@ void generate_files(int f_out, const char *local_name)
        do {
 #ifdef SUPPORT_HARD_LINKS
                if (preserve_hard_links && inc_recurse) {
-                       while (!flist_eof) {
-                               int cnt = first_flist->prev
-                                       ? first_flist->prev->ndx_end - first_flist->ndx_start + 1
-                                       : first_flist->ndx_end - first_flist->ndx_start + 1;
-                               if (cnt >= FILECNT_LOOKAHEAD/2)
-                                       break;
+                       while (!flist_eof && file_total < FILECNT_LOOKAHEAD/2)
                                wait_for_receiver();
-                       }
                }
 #endif