The nr_entries in rblist is never decremented when an element
is deleted. Also, use rblist__remove_node to delete a node in
rblist__delete(). This would keep the nr_entries sane.
Signed-off-by: Suzuki K. Poulose <suzuki@in.ibm.com>
Acked-by: David S. Ahern <dsahern@gmail.com>
Cc: David S. Ahern <dsahern@gmail.com>
Link: http://lkml.kernel.org/r/20120831070834.14806.87398.stgit@suzukikp.in.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
 void rblist__remove_node(struct rblist *rblist, struct rb_node *rb_node)
 {
        rb_erase(rb_node, &rblist->entries);
+       --rblist->nr_entries;
        rblist->node_delete(rblist, rb_node);
 }
 
                while (next) {
                        pos = next;
                        next = rb_next(pos);
-                       rb_erase(pos, &rblist->entries);
-                       rblist->node_delete(rblist, pos);
+                       rblist__remove_node(rblist, pos);
                }
                free(rblist);
        }