code: func (s *storage) openForRead(n int) error {
  	if n > len(s.fds) {
  		panic(fmt.Sprintf("openForRead called out of order got %d, expected %d", n, len(s.fds)))
  	}
  
  	fn := s.filename(n)
  	f, err := os.Open(fn)
  	if err != nil {
  		return err
  	}
  	openFdsVar.Add(s.root, 1)
  	debug.Printf("diskpacked: opened for read %q", fn)
  	s.fds = append(s.fds, f)
  	return nil
  }
docs: // openForRead will open pack file n for read and keep a handle to it in
  // s.fds.  os.IsNotExist returned if n >= the number of pack files in s.root.
  // This function is not thread safe, s.mu should be locked by the caller.