X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/215b444cae70637d0c1b48501dca358c7db43709..b5be9e6c5f9feba4cf55feba83cee86039a37cea:/generator.c diff --git a/generator.c b/generator.c index c0613863..7ae5ab7e 100644 --- a/generator.c +++ b/generator.c @@ -325,7 +325,7 @@ void itemize(struct file_struct *file, int ndx, int statret, STRUCT_STAT *st, if ((iflags & (ITEM_TRANSFER|ITEM_LOCAL_CHANGE) && !keep_time && (!(iflags & ITEM_XNAME_FOLLOWS) || *xname)) - || (keep_time && file->modtime != st->st_mtime)) + || (keep_time && cmp_modtime(file->modtime, st->st_mtime) != 0)) iflags |= ITEM_REPORT_TIME; if (preserve_perms && file->mode != st->st_mode) iflags |= ITEM_REPORT_PERMS; @@ -529,7 +529,7 @@ static int find_fuzzy(struct file_struct *file, struct file_list *dirlist) name = fp->basename; if (fp->length == file->length - && fp->modtime == file->modtime) { + && cmp_modtime(fp->modtime, file->modtime) == 0) { if (verbose > 4) { rprintf(FINFO, "fuzzy size/modtime match for %s\n", @@ -707,7 +707,7 @@ static void recv_generator(char *fname, struct file_struct *file, int ndx, if (statret != 0 && do_mkdir(fname,file->mode) != 0 && errno != EEXIST) { if (!relative_paths || errno != ENOENT || create_directory_path(fname, orig_umask) < 0 - || do_mkdir(fname, file->mode) < 0) { + || (do_mkdir(fname, file->mode) < 0 && errno != EEXIST)) { rsyserr(FERROR, errno, "recv_generator: mkdir %s failed", full_fname(fname));