func addFile(directory *filesystem.Directory, fileSystem, oldFS *FileSystem, name string, directoryPathName string, stat *syscall.Stat_t) error { inode, isNewInode := fileSystem.getInode(stat) var file filesystem.File file.Name = name file.InodeNumber = stat.Ino file.SetInode(inode) if isNewInode { err := scanFile(&file, fileSystem, directoryPathName) if err != nil { return err } if oldFS != nil && oldFS.InodeTable != nil { if oldInode, found := oldFS.InodeTable[stat.Ino]; found { if filesystem.CompareInodes(inode, oldInode, nil) { inode = oldInode file.SetInode(inode) fileSystem.InodeTable[stat.Ino] = inode } } } } directory.FileList = append(directory.FileList, &file) return nil }