-+ SIVAL(ATIME_PTR(file), 0, atime);
-
- if (dirname_len) {
- file->dirname = lastdir = bp;
-@@ -731,6 +753,7 @@ struct file_struct *make_file(char *fnam
- char thisname[MAXPATHLEN];
- char linkname[MAXPATHLEN];
- int alloc_len, basename_len, dirname_len, linkname_len, sum_len;
-+ int atime_len;
- char *basename, *dirname, *bp;
-
- if (!flist || !flist->count) /* Ignore lastdir when invalid. */
-@@ -854,8 +877,10 @@ struct file_struct *make_file(char *fnam
- sum_len = always_checksum && am_sender && S_ISREG(st.st_mode)
- ? MD4_SUM_LENGTH : 0;
-
-+ atime_len = preserve_atimes ? 4 : 0;
-+
- alloc_len = file_struct_len + dirname_len + basename_len
-- + linkname_len + sum_len;
-+ + atime_len + linkname_len + sum_len;
- if (flist)
- bp = pool_alloc(flist->file_pool, alloc_len, "make_file");
- else {
-@@ -865,7 +890,7 @@ struct file_struct *make_file(char *fnam
-
- file = (struct file_struct *)bp;
- memset(bp, 0, file_struct_len);
-- bp += file_struct_len;
-+ bp += file_struct_len + atime_len;
-
- file->flags = flags;
- file->modtime = st.st_mtime;
-@@ -873,6 +898,8 @@ struct file_struct *make_file(char *fnam
- file->mode = st.st_mode;
- file->uid = st.st_uid;
- file->gid = st.st_gid;
++ F_ATIME(file) = atime;
+
+ if (basename != thisname) {
+ file->dirname = lastdir;
+@@ -1055,6 +1073,8 @@ struct file_struct *make_file(const char
+ F_OWNER(file) = st.st_uid;
+ if (preserve_gid)
+ F_GROUP(file) = st.st_gid;