]> rtime.felk.cvut.cz Git - lisovros/linux_canprio.git/blobdiff - lib/radix-tree.c
radix-tree: clear all tags in radix_tree_node_rcu_free
[lisovros/linux_canprio.git] / lib / radix-tree.c
index e907858498a6a3184f57de0d60fe25098ec37006..1014171dd1c523efeb7773ba0f12c0881f942491 100644 (file)
@@ -174,14 +174,16 @@ static void radix_tree_node_rcu_free(struct rcu_head *head)
 {
        struct radix_tree_node *node =
                        container_of(head, struct radix_tree_node, rcu_head);
+       int i;
 
        /*
         * must only free zeroed nodes into the slab. radix_tree_shrink
         * can leave us with a non-NULL entry in the first slot, so clear
         * that here to make sure.
         */
-       tag_clear(node, 0, 0);
-       tag_clear(node, 1, 0);
+       for (i = 0; i < RADIX_TREE_MAX_TAGS; i++)
+               tag_clear(node, i, 0);
+
        node->slots[0] = NULL;
        node->count = 0;