Simplified test for hardlink in make_backup debug message to
[rsync/rsync.git] / backup.c
index 3f5c416..9765d6f 100644 (file)
--- a/backup.c
+++ b/backup.c
@@ -25,6 +25,7 @@ extern int backup_suffix_len;
 extern int backup_dir_len;
 extern char *backup_suffix;
 extern char *backup_dir;
+extern struct file_struct **hlink_list;
 
 extern int am_root;
 extern int preserve_devices;
@@ -188,6 +189,7 @@ static int keep_backup(char *fname)
                        backup_dir[--backup_dir_len] = '\0';
                if (verbose > 0)
                        rprintf(FINFO, "backup_dir is %s\n", backup_dir);
+
                initialised = 1;
        }
 
@@ -262,11 +264,8 @@ static int keep_backup(char *fname)
                kept = 1;
        }
 #endif
-       if (!kept && preserve_hard_links && file->link_u.links
-           && file->F_HEAD != file) {
-               if (verbose > 1)
-                       rprintf(FINFO, "%s is a hard link\n", f_name(file));
-       }
+       if (!kept && preserve_hard_links && file->link_u.links && verbose > 1)
+               rprintf(FINFO, "%s was a hard link\n", f_name(file));
 
        if (!kept && !S_ISREG(file->mode)) {
                rprintf(FINFO, "make_bak: skipping non-regular file %s\n",
@@ -281,7 +280,6 @@ static int keep_backup(char *fname)
                }
        }
        set_perms(keep_name, file, NULL, 0);
-       free_file(file);
        free(file);
 
        if (verbose > 1)