netfilter: netns nf_conntrack: cleanup after L3 and L4 proto unregister in every netns
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Patrick McHardy <kaber@trash.net>
This commit is contained in:
committed by
Patrick McHardy
parent
6804793767
commit
678d667530
@@ -207,6 +207,8 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_register);
|
|||||||
|
|
||||||
void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
|
void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
|
||||||
{
|
{
|
||||||
|
struct net *net;
|
||||||
|
|
||||||
BUG_ON(proto->l3proto >= AF_MAX);
|
BUG_ON(proto->l3proto >= AF_MAX);
|
||||||
|
|
||||||
mutex_lock(&nf_ct_proto_mutex);
|
mutex_lock(&nf_ct_proto_mutex);
|
||||||
@@ -219,7 +221,8 @@ void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto)
|
|||||||
synchronize_rcu();
|
synchronize_rcu();
|
||||||
|
|
||||||
/* Remove all contrack entries for this protocol */
|
/* Remove all contrack entries for this protocol */
|
||||||
nf_ct_iterate_cleanup(&init_net, kill_l3proto, proto);
|
for_each_net(net)
|
||||||
|
nf_ct_iterate_cleanup(net, kill_l3proto, proto);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
|
EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
|
||||||
|
|
||||||
@@ -316,6 +319,8 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_register);
|
|||||||
|
|
||||||
void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
|
void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
|
||||||
{
|
{
|
||||||
|
struct net *net;
|
||||||
|
|
||||||
BUG_ON(l4proto->l3proto >= PF_MAX);
|
BUG_ON(l4proto->l3proto >= PF_MAX);
|
||||||
|
|
||||||
mutex_lock(&nf_ct_proto_mutex);
|
mutex_lock(&nf_ct_proto_mutex);
|
||||||
@@ -328,7 +333,8 @@ void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto)
|
|||||||
synchronize_rcu();
|
synchronize_rcu();
|
||||||
|
|
||||||
/* Remove all contrack entries for this protocol */
|
/* Remove all contrack entries for this protocol */
|
||||||
nf_ct_iterate_cleanup(&init_net, kill_l4proto, l4proto);
|
for_each_net(net)
|
||||||
|
nf_ct_iterate_cleanup(net, kill_l4proto, l4proto);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);
|
EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user