code: func (p *Pod) ToPreparing() error {
  	if !p.createdByMe {
  		return fmt.Errorf("bug: only pods created by me may transition to preparing")
  	}
  
  	if !p.isEmbryo {
  		return fmt.Errorf("bug: only embryonic pods can transition to preparing")
  	}
  
  	if err := p.ExclusiveLock(); err != nil {
  		return err
  	}
  
  	if err := os.Rename(p.embryoPath(), p.preparePath()); err != nil {
  		return err
  	}
  
  	df, err := os.Open(prepareDir(p.dataDir))
  	if err != nil {
  		return err
  	}
  	defer df.Close()
  	if err := df.Sync(); err != nil {
  		return err
  	}
  
  	p.isEmbryo = false
  	p.isPreparing = true
  
  	return nil
  }
docs: // ToPrepare transitions a pod from embryo -> preparing, leaves the pod locked in the prepare directory.
  // only the creator of the pod (via NewPod()) may do this, nobody to race with.
  // This method refreshes the pod state.