code: func (p *Pod) ToPrepared() error {
  	if !p.createdByMe {
  		return fmt.Errorf("bug: only pods created by me may transition to prepared")
  	}
  
  	if !p.isPreparing {
  		return fmt.Errorf("bug: only preparing pods may transition to prepared")
  	}
  
  	if err := os.Rename(p.Path(), p.preparedPath()); err != nil {
  		return err
  	}
  	if err := p.Unlock(); err != nil {
  		return err
  	}
  
  	df, err := os.Open(preparedDir(p.dataDir))
  	if err != nil {
  		return err
  	}
  	defer df.Close()
  	if err := df.Sync(); err != nil {
  		return err
  	}
  
  	p.isPreparing = false
  	p.isPrepared = true
  
  	return nil
  }
docs: // ToPrepared transitions a pod from preparing -> prepared, leaves the pod unlocked in the prepared directory.
  // only the creator of the pod (via NewPod()) may do this, nobody to race with.
  // This method refreshes the pod state.