Loading net/netfilter/nft_set_hash.c +17 −7 Original line number Diff line number Diff line Loading @@ -167,6 +167,19 @@ static void nft_hash_activate(const struct net *net, const struct nft_set *set, nft_set_elem_clear_busy(&he->ext); } static bool nft_hash_deactivate_one(const struct net *net, const struct nft_set *set, void *priv) { struct nft_hash_elem *he = priv; if (!nft_set_elem_mark_busy(&he->ext) || !nft_is_active(net, &he->ext)) { nft_set_elem_change_active(net, set, &he->ext); return true; } return false; } static void *nft_hash_deactivate(const struct net *net, const struct nft_set *set, const struct nft_set_elem *elem) Loading @@ -181,13 +194,10 @@ static void *nft_hash_deactivate(const struct net *net, rcu_read_lock(); he = rhashtable_lookup_fast(&priv->ht, &arg, nft_hash_params); if (he != NULL) { if (!nft_set_elem_mark_busy(&he->ext) || !nft_is_active(net, &he->ext)) nft_set_elem_change_active(net, set, &he->ext); else if (he != NULL && !nft_hash_deactivate_one(net, set, he)) he = NULL; } rcu_read_unlock(); return he; Loading net/netfilter/nft_set_rbtree.c +10 −1 Original line number Diff line number Diff line Loading @@ -171,6 +171,15 @@ static void nft_rbtree_activate(const struct net *net, nft_set_elem_change_active(net, set, &rbe->ext); } static bool nft_rbtree_deactivate_one(const struct net *net, const struct nft_set *set, void *priv) { struct nft_rbtree_elem *rbe = priv; nft_set_elem_change_active(net, set, &rbe->ext); return true; } static void *nft_rbtree_deactivate(const struct net *net, const struct nft_set *set, const struct nft_set_elem *elem) Loading Loading @@ -204,7 +213,7 @@ static void *nft_rbtree_deactivate(const struct net *net, parent = parent->rb_right; continue; } nft_set_elem_change_active(net, set, &rbe->ext); nft_rbtree_deactivate_one(net, set, rbe); return rbe; } } Loading Loading
net/netfilter/nft_set_hash.c +17 −7 Original line number Diff line number Diff line Loading @@ -167,6 +167,19 @@ static void nft_hash_activate(const struct net *net, const struct nft_set *set, nft_set_elem_clear_busy(&he->ext); } static bool nft_hash_deactivate_one(const struct net *net, const struct nft_set *set, void *priv) { struct nft_hash_elem *he = priv; if (!nft_set_elem_mark_busy(&he->ext) || !nft_is_active(net, &he->ext)) { nft_set_elem_change_active(net, set, &he->ext); return true; } return false; } static void *nft_hash_deactivate(const struct net *net, const struct nft_set *set, const struct nft_set_elem *elem) Loading @@ -181,13 +194,10 @@ static void *nft_hash_deactivate(const struct net *net, rcu_read_lock(); he = rhashtable_lookup_fast(&priv->ht, &arg, nft_hash_params); if (he != NULL) { if (!nft_set_elem_mark_busy(&he->ext) || !nft_is_active(net, &he->ext)) nft_set_elem_change_active(net, set, &he->ext); else if (he != NULL && !nft_hash_deactivate_one(net, set, he)) he = NULL; } rcu_read_unlock(); return he; Loading
net/netfilter/nft_set_rbtree.c +10 −1 Original line number Diff line number Diff line Loading @@ -171,6 +171,15 @@ static void nft_rbtree_activate(const struct net *net, nft_set_elem_change_active(net, set, &rbe->ext); } static bool nft_rbtree_deactivate_one(const struct net *net, const struct nft_set *set, void *priv) { struct nft_rbtree_elem *rbe = priv; nft_set_elem_change_active(net, set, &rbe->ext); return true; } static void *nft_rbtree_deactivate(const struct net *net, const struct nft_set *set, const struct nft_set_elem *elem) Loading Loading @@ -204,7 +213,7 @@ static void *nft_rbtree_deactivate(const struct net *net, parent = parent->rb_right; continue; } nft_set_elem_change_active(net, set, &rbe->ext); nft_rbtree_deactivate_one(net, set, rbe); return rbe; } } Loading