X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/6e310d38fcdeacb8055bb7e83d4e64c37fd54a38..c493b6b81d814db3cdd91f3bb98f5a84456756ff:/generator.c diff --git a/generator.c b/generator.c index 5f6afd6f..8038feb2 100644 --- a/generator.c +++ b/generator.c @@ -91,7 +91,6 @@ extern int max_delete; extern int force_delete; extern int one_file_system; extern int skipped_deletes; -extern struct stats stats; extern dev_t filesystem_dev; extern mode_t orig_umask; extern uid_t our_uid; @@ -392,7 +391,7 @@ static void do_delete_pass(void) int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp) { -#if !defined HAVE_LUTIMES || !defined HAVE_UTIMES +#ifndef CAN_SET_SYMLINK_TIMES if (S_ISLNK(file->mode)) { ; } else @@ -417,7 +416,7 @@ int unchanged_attrs(const char *fname, struct file_struct *file, stat_x *sxp) if (preserve_acls && !S_ISLNK(file->mode)) { if (!ACL_READY(*sxp)) get_acl(fname, sxp); - if (set_acl(NULL, file, sxp) == 0) + if (set_acl(NULL, file, sxp, file->mode)) return 0; } #endif @@ -440,7 +439,7 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre if (statret >= 0) { /* A from-dest-dir statret can == 1! */ int keep_time = !preserve_times ? 0 : S_ISDIR(file->mode) ? preserve_times > 1 : -#if defined HAVE_LUTIMES && defined HAVE_UTIMES +#ifdef CAN_SET_SYMLINK_TIMES 1; #else !S_ISLNK(file->mode); @@ -476,7 +475,7 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre if (preserve_acls && !S_ISLNK(file->mode)) { if (!ACL_READY(*sxp)) get_acl(fnamecmp, sxp); - if (set_acl(NULL, file, sxp) == 0) + if (set_acl(NULL, file, sxp, file->mode)) iflags |= ITEM_REPORT_ACL; } #endif @@ -516,7 +515,7 @@ void itemize(const char *fnamecmp, struct file_struct *file, int ndx, int statre #endif } else if (ndx >= 0) { enum logcode code = logfile_format_has_i ? FINFO : FCLIENT; - log_item(code, file, &stats, iflags, xname); + log_item(code, file, iflags, xname); } } } @@ -1923,7 +1922,7 @@ static void touch_up_dirs(struct file_list *flist, int ndx) STRUCT_STAT st; if (link_stat(fname, &st, 0) == 0 && cmp_time(st.st_mtime, file->modtime) != 0) - set_modtime(fname, file->modtime, file->mode); + set_modtime(fname, file->modtime, F_MOD_NSEC(file), file->mode); } if (counter >= loopchk_limit) { if (allowed_lull)