From: Zac Medico Date: Sat, 8 Aug 2009 19:24:56 +0000 (-0000) Subject: Account for hardlinks when computing SIZE metadata. X-Git-Tag: v2.2_rc37~17 X-Git-Url: http://git.tremily.us/gitweb.cgi?a=commitdiff_plain;h=9aca761850fa82997dbcd04cb06a203b7b326ea3;p=portage.git Account for hardlinks when computing SIZE metadata. svn path=/main/trunk/; revision=13949 --- diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index af908f041..321487a1c 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -5176,12 +5176,15 @@ def _post_src_install_uid_fix(mysettings): destdir = destdir.encode('utf_8', 'replace') size = 0 + counted_inodes = set() for parent, dirs, files in os.walk(destdir): for fname in chain(dirs, files): fpath = os.path.join(parent, fname) mystat = os.lstat(fpath) - if stat.S_ISREG(mystat.st_mode): + if stat.S_ISREG(mystat.st_mode) and \ + mystat.st_ino not in counted_inodes: + counted_inodes.add(mystat.st_ino) size += mystat.st_size if mystat.st_uid != portage_uid and \ mystat.st_gid != portage_gid: