code: func (vs *volumeSnapshotter) getPVFromVolumeSnapshot(uniqueSnapshotName string, snapshot *crdv1.VolumeSnapshot) (*v1.PersistentVolume, error) {
  	pvcName := snapshot.Spec.PersistentVolumeClaimName
  	if pvcName == "" {
  		return nil, fmt.Errorf("The PVC name is not specified in snapshot %s", uniqueSnapshotName)
  	}
  
  	pvc, err := vs.coreClient.CoreV1().PersistentVolumeClaims(snapshot.Metadata.Namespace).Get(pvcName, metav1.GetOptions{})
  	if err != nil {
  		return nil, fmt.Errorf("Failed to retrieve PVC %s from the API server: %q", pvcName, err)
  	}
  	if pvc.Status.Phase != v1.ClaimBound {
  		return nil, fmt.Errorf("The PVC %s not yet bound to a PV, will not attempt to take a snapshot yet", pvcName)
  	}
  
  	pvName := pvc.Spec.VolumeName
  	pv, err := vs.getPVFromName(pvName)
  	if err != nil {
  		return nil, fmt.Errorf("Failed to retrieve PV %s from the API server: %q", pvName, err)
  	}
  	return pv, nil
  }
docs: // Helper function to get PV from VolumeSnapshot