Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
If the xattr data is bogus in get_rsync_acl(), free the buffer.
[rsync/rsync.git]
/
generator.c
diff --git
a/generator.c
b/generator.c
index
24435ea
..
f364eef
100644
(file)
--- a/
generator.c
+++ b/
generator.c
@@
-517,6
+517,14
@@
static void do_delete_pass(void)
int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp)
{
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;
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;
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;
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) {
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();
wait_for_receiver();
- }
}
#endif
}
#endif