- if (preserve_times && !S_ISLNK(st->st_mode) &&
- cmp_modtime(st->st_mtime, file->modtime) != 0) {
+ if (!preserve_times || S_ISLNK(st->st_mode))
+ flags |= PERMS_SKIP_TIME;
+ if (!(flags & PERMS_SKIP_TIME)
+ && cmp_modtime(st->st_mtime, file->modtime) != 0) {