summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-06-28 04:47:42 +0000
committerdgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-06-28 04:47:42 +0000
commita76588281b1748937655aae6ad215cf3a08e0cb8 (patch)
treea421f79e1f727e5345c0143cab8f5c97c1fb7845
parent1fa1b8deb68298a9b906e12eecc0dfd60f374685 (diff)
downloadrdiff-backup-a76588281b1748937655aae6ad215cf3a08e0cb8.tar.gz
bug#13476: must always compare device numbers when we compare inode
numbers -- fix a non-fatal problem with hardlinks when a filesystem is moved to another device (and the inodes don't change). git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@593 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r--rdiff-backup/CHANGELOG4
-rw-r--r--rdiff-backup/rdiff_backup/rpath.py4
2 files changed, 6 insertions, 2 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG
index 85542d5..e452c96 100644
--- a/rdiff-backup/CHANGELOG
+++ b/rdiff-backup/CHANGELOG
@@ -12,6 +12,10 @@ Fix from Paul P Komkoff Jr for uid typo in text_to_entrytuple.
bug#12726: fix regressing of devices while running as non-root -- zero
length files are created as placeholders.
+bug#13476: must always compare device numbers when we compare inode
+numbers -- fix a non-fatal problem with hardlinks when a filesystem is
+moved to another device (and the inodes don't change).
+
New in v0.13.6 (2005/04/07)
---------------------------
diff --git a/rdiff-backup/rdiff_backup/rpath.py b/rdiff-backup/rdiff_backup/rpath.py
index 6ac1c2c..b03543c 100644
--- a/rdiff-backup/rdiff_backup/rpath.py
+++ b/rdiff-backup/rdiff_backup/rpath.py
@@ -294,7 +294,7 @@ class RORPath:
pass # Don't compare gid/uid for symlinks
elif key == 'atime' and not Globals.preserve_atime: pass
elif key == 'ctime': pass
- elif key == 'devloc' or key == 'nlink': pass
+ elif key == 'nlink': pass
elif key == 'size' and not self.isreg(): pass
elif key == 'ea' and not Globals.eas_active: pass
elif key == 'acl' and not Globals.acls_active: pass
@@ -306,7 +306,7 @@ class RORPath:
other_name = other.data.get(key, None)
if (other_name and other_name != "None" and
other_name != self.data[key]): return None
- elif (key == 'inode' and
+ elif ((key == 'inode' or key == 'devloc') and
(not self.isreg() or self.getnumlinks() == 1 or
not Globals.compare_inode or
not Globals.preserve_hardlinks)):