code: func (ctrl *PersistentVolumeController) provisionClaim(claim *v1.PersistentVolumeClaim) error {
  	if !ctrl.enableDynamicProvisioning {
  		return nil
  	}
  	klog.V(4).Infof("provisionClaim[%s]: started", claimToClaimKey(claim))
  	opName := fmt.Sprintf("provision-%s[%s]", claimToClaimKey(claim), string(claim.UID))
  	startTime := time.Now()
  	ctrl.scheduleOperation(opName, func() error {
  		pluginName, err := ctrl.provisionClaimOperation(claim)
  		timeTaken := time.Since(startTime).Seconds()
  		metrics.RecordVolumeOperationMetric(pluginName, "provision", timeTaken, err)
  		return err
  	})
  	return nil
  }
docs: // provisionClaim starts new asynchronous operation to provision a claim if
  // provisioning is enabled.