X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/92cc9dd7c2c1936f8558bfada8a704c0e6e73482..cb7fb45e4269761ad773cf04594a3284ce951b30:/hlink.c diff --git a/hlink.c b/hlink.c index 289842e5..402f6c52 100644 --- a/hlink.c +++ b/hlink.c @@ -102,11 +102,12 @@ int check_hard_link(struct file_struct *file) low = mid + 1; } - /* XXX: To me this looks kind of dodgy -- why do we use [low] - * here and [low-1] below? -- mbp */ + /* Check if we ended up finding the file struct or not. */ if (hlink_compare(&hlink_list[low], &file) != 0) return 0; + /* Now check if the previous item shares the current one's device + * and inode. If so, we're not the "master", so return 1. */ if (low > 0 && file->F_DEV == hlink_list[low - 1]->F_DEV && file->F_INODE == hlink_list[low - 1]->F_INODE) {