code: func (sched *Scheduler) bindVolumes(assumed *v1.Pod) error {
  	klog.V(5).Infof("Trying to bind volumes for pod \"%v/%v\"", assumed.Namespace, assumed.Name)
  	err := sched.config.VolumeBinder.Binder.BindPodVolumes(assumed)
  	if err != nil {
  		klog.V(1).Infof("Failed to bind volumes for pod \"%v/%v\": %v", assumed.Namespace, assumed.Name, err)
  
  		// Unassume the Pod and retry scheduling
  		if forgetErr := sched.config.SchedulerCache.ForgetPod(assumed); forgetErr != nil {
  			klog.Errorf("scheduler cache ForgetPod failed: %v", forgetErr)
  		}
  
  		sched.recordSchedulingFailure(assumed, err, "VolumeBindingFailed", err.Error())
  		return err
  	}
  
  	klog.V(5).Infof("Success binding volumes for pod \"%v/%v\"", assumed.Namespace, assumed.Name)
  	return nil
  }
docs: // bindVolumes will make the API update with the assumed bindings and wait until
  // the PV controller has completely finished the binding operation.
  //
  // If binding errors, times out or gets undone, then an error will be returned to
  // retry scheduling.