* tries to combine the data in the same way.  If one node contains the
         * entire range of the tree, then that node is used as a new root node.
         */
-       mas_node_count(mas, empty_count * 2 - 1);
-       if (mas_is_err(mas))
-               return 0;
 
        mast.orig_l = &l_mas;
        mast.orig_r = &r_mas;
 
        /* set up node. */
        if (in_rcu) {
-               /* Allocate for both left and right as well as parent. */
-               mas_node_count(mas, 3);
-               if (mas_is_err(mas))
-                       return;
-
                newnode = mas_pop_node(mas);
        } else {
                newnode = &reuse;
 
        trace_ma_op(__func__, mas);
        mas->depth = mas_mt_height(mas);
-       /* Allocation failures will happen early. */
-       mas_node_count(mas, 1 + mas->depth * 2);
-       if (mas_is_err(mas))
-               return 0;
 
        mast.l = &l_mas;
        mast.r = &r_mas;
        unsigned long *pivots;
        int slot = 0;
 
-       mas_node_count(mas, 1);
-       if (unlikely(mas_is_err(mas)))
-               return 0;
-
        node = mas_pop_node(mas);
        pivots = ma_pivots(node, type);
        slots = ma_slots(node, type);
                goto done;
        }
 
-       mas_node_count(mas, 1);
-       if (mas_is_err(mas))
-               return 0;
-
        node = mas_pop_node(mas);
        pivots = ma_pivots(node, type);
        slots = ma_slots(node, type);
         * entries per level plus a new root.
         */
        height = mas_mt_height(mas);
-       mas_node_count(mas, 1 + height * 3);
-       if (mas_is_err(mas))
-               return 0;
 
        /*
         * Set up right side.  Need to get to the next offset after the spanning
 
        /* set up node. */
        if (in_rcu) {
-               mas_node_count(mas, 1);
-               if (mas_is_err(mas))
-                       return false;
-
                newnode = mas_pop_node(mas);
        } else {
                memset(&reuse, 0, sizeof(struct maple_node));