diff --git a/fs/du_unix.go b/fs/du_unix.go index 3d0af20e6..d8654d32f 100644 --- a/fs/du_unix.go +++ b/fs/du_unix.go @@ -27,8 +27,13 @@ func diskUsage(roots ...string) (Usage, error) { } stat := fi.Sys().(*syscall.Stat_t) - inodes[inode{dev: uint64(stat.Dev), ino: uint64(stat.Ino)}] = struct{}{} - size += fi.Size() + + inoKey := inode{dev: uint64(stat.Dev), ino: uint64(stat.Ino)} + if _, ok := inodes[inoKey]; !ok { + inodes[inoKey] = struct{}{} + size += fi.Size() + } + return nil }); err != nil { return Usage{}, err