code: func parseDirent(buf []byte, names []nameIno) (consumed int, newnames []nameIno) {
  	origlen := len(buf)
  	for len(buf) > 0 {
  		dirent := (*unix.Dirent)(unsafe.Pointer(&buf[0]))
  		buf = buf[dirent.Reclen:]
  		if dirent.Ino == 0 { // File absent in directory.
  			continue
  		}
  		bytes := (*[10000]byte)(unsafe.Pointer(&dirent.Name[0]))
  		var name = string(bytes[0:clen(bytes[:])])
  		if name == "." || name == ".." { // Useless names
  			continue
  		}
  		names = append(names, nameIno{name, dirent.Ino})
  	}
  	return origlen - len(buf), names
  }
docs: // parseDirent is a minor modification of unix.ParseDirent (linux version)
  // which returns {name,inode} pairs instead of just names.