Commit 8079fc30 authored by Florian Westphal's avatar Florian Westphal Committed by Pablo Neira Ayuso
Browse files

netfilter: nft_set_rbtree: rename gc deactivate+erase function



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: default avatarFlorian Westphal <fw@strlen.de>
Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
parent 5e370403
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -221,7 +221,7 @@ 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,
static void nft_rbtree_gc_elem_remove(struct net *net, struct nft_set *set,
				      struct nft_rbtree *priv,
				      struct nft_rbtree_elem *rbe)
{
@@ -229,6 +229,7 @@ static void nft_rbtree_gc_remove(struct net *net, struct nft_set *set,
		.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);