code: func (cache *schedulerCache) removePod(pod *v1.Pod) error {
  	n, ok := cache.nodes[pod.Spec.NodeName]
  	if !ok {
  		return fmt.Errorf("node %v is not found", pod.Spec.NodeName)
  	}
  	if err := n.info.RemovePod(pod); err != nil {
  		return err
  	}
  	if len(n.info.Pods()) == 0 && n.info.Node() == nil {
  		cache.removeNodeInfoFromList(pod.Spec.NodeName)
  	} else {
  		cache.moveNodeInfoToHead(pod.Spec.NodeName)
  	}
  	return nil
  }
docs: // Assumes that lock is already acquired.