code: func (n *node) split(pageSize int) []*node {
  	var nodes []*node
  
  	node := n
  	for {
  		// Split node into two.
  		a, b := node.splitTwo(pageSize)
  		nodes = append(nodes, a)
  
  		// If we can't split then exit the loop.
  		if b == nil {
  			break
  		}
  
  		// Set node to b so it gets split on the next iteration.
  		node = b
  	}
  
  	return nodes
  }
docs: // split breaks up a node into multiple smaller nodes, if appropriate.
  // This should only be called from the spill() function.