code: func (ctrl *PersistentVolumeController) rescheduleProvisioning(claim *v1.PersistentVolumeClaim) {
  	if _, ok := claim.Annotations[annSelectedNode]; !ok {
  		// Provisioning not triggered by the scheduler, skip
  		return
  	}
  
  	// The claim from method args can be pointing to watcher cache. We must not
  	// modify these, therefore create a copy.
  	newClaim := claim.DeepCopy()
  	delete(newClaim.Annotations, annSelectedNode)
  	// Try to update the PVC object
  	if _, err := ctrl.kubeClient.CoreV1().PersistentVolumeClaims(newClaim.Namespace).Update(newClaim); err != nil {
  		klog.V(4).Infof("Failed to delete annotation 'annSelectedNode' for PersistentVolumeClaim %q: %v", claimToClaimKey(newClaim), err)
  		return
  	}
  	if _, err := ctrl.storeClaimUpdate(newClaim); err != nil {
  		// We will get an "claim updated" event soon, this is not a big error
  		klog.V(4).Infof("Updating PersistentVolumeClaim %q: cannot update internal cache: %v", claimToClaimKey(newClaim), err)
  	}
  }
docs: // rescheduleProvisioning signal back to the scheduler to retry dynamic provisioning
  // by removing the annSelectedNode annotation