]> git.itanic.dy.fi Git - linux-stable/commitdiff
netfilter: nft_set_rbtree: rename gc deactivate+erase function
authorFlorian Westphal <fw@strlen.de>
Fri, 13 Oct 2023 12:18:15 +0000 (14:18 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 24 Oct 2023 11:16:29 +0000 (13:16 +0200)
Next patch adds a cllaer that doesn't hold the priv->write lock and
will need a similar function.

Rename the existing function to make it clear that it can only
be used for opportunistic gc during insertion.

Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nft_set_rbtree.c

index e34662f4a71e0f821e1557c6bc743638669bbabd..d59be2bc6e6c52350b3aea2a1e26e87da8e4feb7 100644 (file)
@@ -221,14 +221,15 @@ static void *nft_rbtree_get(const struct net *net, const struct nft_set *set,
        return rbe;
 }
 
-static void nft_rbtree_gc_remove(struct net *net, struct nft_set *set,
-                                struct nft_rbtree *priv,
-                                struct nft_rbtree_elem *rbe)
+static void nft_rbtree_gc_elem_remove(struct net *net, struct nft_set *set,
+                                     struct nft_rbtree *priv,
+                                     struct nft_rbtree_elem *rbe)
 {
        struct nft_set_elem elem = {
                .priv   = rbe,
        };
 
+       lockdep_assert_held_write(&priv->lock);
        nft_setelem_data_deactivate(net, set, &elem);
        rb_erase(&rbe->node, &priv->root);
 }
@@ -263,7 +264,7 @@ nft_rbtree_gc_elem(const struct nft_set *__set, struct nft_rbtree *priv,
        rbe_prev = NULL;
        if (prev) {
                rbe_prev = rb_entry(prev, struct nft_rbtree_elem, node);
-               nft_rbtree_gc_remove(net, set, priv, rbe_prev);
+               nft_rbtree_gc_elem_remove(net, set, priv, rbe_prev);
 
                /* There is always room in this trans gc for this element,
                 * memory allocation never actually happens, hence, the warning
@@ -277,7 +278,7 @@ nft_rbtree_gc_elem(const struct nft_set *__set, struct nft_rbtree *priv,
                nft_trans_gc_elem_add(gc, rbe_prev);
        }
 
-       nft_rbtree_gc_remove(net, set, priv, rbe);
+       nft_rbtree_gc_elem_remove(net, set, priv, rbe);
        gc = nft_trans_gc_queue_sync(gc, GFP_ATOMIC);
        if (WARN_ON_ONCE(!gc))
                return ERR_PTR(-ENOMEM);