code: func (ctrl *PersistentVolumeController) syncClaim(claim *v1.PersistentVolumeClaim) error {
  	klog.V(4).Infof("synchronizing PersistentVolumeClaim[%s]: %s", claimToClaimKey(claim), getClaimStatusForLogging(claim))
  
  	if !metav1.HasAnnotation(claim.ObjectMeta, annBindCompleted) {
  		return ctrl.syncUnboundClaim(claim)
  	} else {
  		return ctrl.syncBoundClaim(claim)
  	}
  }
docs: // syncClaim is the main controller method to decide what to do with a claim.
  // It's invoked by appropriate cache.Controller callbacks when a claim is
  // created, updated or periodically synced. We do not differentiate between
  // these events.
  // For easier readability, it was split into syncUnboundClaim and syncBoundClaim
  // methods.