Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
de0e225
)
If --backup was specified, the links we remove are backed up.
author
Wayne Davison
<wayned@samba.org>
Wed, 11 Feb 2004 05:03:04 +0000
(
05:03
+0000)
committer
Wayne Davison
<wayned@samba.org>
Wed, 11 Feb 2004 05:03:04 +0000
(
05:03
+0000)
hlink.c
patch
|
blob
|
blame
|
history
diff --git
a/hlink.c
b/hlink.c
index
f42df53
..
110e6ed
100644
(file)
--- a/
hlink.c
+++ b/
hlink.c
@@
-22,6
+22,7
@@
extern int dry_run;
extern int verbose;
extern int dry_run;
extern int verbose;
+extern int make_backups;
#if SUPPORT_HARD_LINKS
static int hlink_compare(struct file_struct **file1, struct file_struct **file2)
#if SUPPORT_HARD_LINKS
static int hlink_compare(struct file_struct **file1, struct file_struct **file2)
@@
-38,8
+39,8
@@
static int hlink_compare(struct file_struct **file1, struct file_struct **file2)
return file_compare(file1, file2);
}
return file_compare(file1, file2);
}
-struct file_struct **hlink_list;
-int hlink_count;
+st
atic st
ruct file_struct **hlink_list;
+
static
int hlink_count;
#define LINKED(p1,p2) ((p1)->F_DEV == (p2)->F_DEV \
&& (p1)->F_INODE == (p2)->F_INODE)
#define LINKED(p1,p2) ((p1)->F_DEV == (p2)->F_DEV \
&& (p1)->F_INODE == (p2)->F_INODE)
@@
-190,7
+191,10
@@
void do_hard_links(void)
if (st2.st_dev == st1.st_dev
&& st2.st_ino == st1.st_ino)
continue;
if (st2.st_dev == st1.st_dev
&& st2.st_ino == st1.st_ino)
continue;
- if (robust_unlink(hlink2)) {
+ if (make_backups) {
+ if (!make_backup(hlink2))
+ continue;
+ } else if (robust_unlink(hlink2)) {
if (verbose > 0) {
rprintf(FINFO,
"unlink %s failed: %s\n",
if (verbose > 0) {
rprintf(FINFO,
"unlink %s failed: %s\n",