-- maybe_hard_link(file, ndx, fname, statret, stp,
-+ maybe_hard_link(file, ndx, fname, statret, sxp,
- toname, &st2, itemizing, code);
- if (remove_source_files == 1 && do_xfers)
- send_msg_int(MSG_SUCCESS, ndx);
-@@ -249,7 +258,7 @@ int hard_link_check(struct file_struct *
- }
-
- int hard_link_one(struct file_struct *file, int ndx, const char *fname,
-- int statret, STRUCT_STAT *stp, const char *toname, int terse,
-+ int statret, statx *sxp, const char *toname, int terse,
- int itemizing, enum logcode code)
- {
- if (do_link(toname, fname)) {
-@@ -265,7 +274,11 @@ int hard_link_one(struct file_struct *fi
- }
-
- if (itemizing) {
-- itemize(file, ndx, statret, stp,
+- if (!unchanged_file(cmpbuf, file, &alt_st))
++ if (!unchanged_file(cmpbuf, file, &alt_sx.st))
+ continue;
+ statret = 1;
+- *stp = alt_st;
+- if (unchanged_attrs(file, &alt_st))