From mboxrd@z Thu Jan 1 00:00:00 1970 From: adobriyan@gmail.com Subject: PATCH 19/38] netns ct: cleanup after L3 and L4 proto in every netns Date: Fri, 22 Aug 2008 02:04:14 +0400 Message-ID: <20080821220414.GS31136@x200.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: kaber@trash.net, netfilter-devel@vger.kernel.org, netdev@vger.kernel.org, containers@lists.linux-foundation.org Return-path: Received: from yx-out-2324.google.com ([74.125.44.29]:37868 "EHLO yx-out-2324.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758973AbYHUWCv (ORCPT ); Thu, 21 Aug 2008 18:02:51 -0400 Received: by yx-out-2324.google.com with SMTP id 8so102083yxm.1 for ; Thu, 21 Aug 2008 15:02:50 -0700 (PDT) Content-Disposition: inline Sender: netdev-owner@vger.kernel.org List-ID: Start massacre in every netns when proto in unregistered (read: rmmod). Signed-off-by: Alexey Dobriyan --- net/netfilter/nf_conntrack_proto.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) --- a/net/netfilter/nf_conntrack_proto.c +++ b/net/netfilter/nf_conntrack_proto.c @@ -207,6 +207,8 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_register); void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto) { + struct net *net; + BUG_ON(proto->l3proto >= AF_MAX); mutex_lock(&nf_ct_proto_mutex); @@ -219,7 +221,8 @@ void nf_conntrack_l3proto_unregister(struct nf_conntrack_l3proto *proto) synchronize_rcu(); /* 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); @@ -316,6 +319,8 @@ EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_register); void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto) { + struct net *net; + BUG_ON(l4proto->l3proto >= PF_MAX); mutex_lock(&nf_ct_proto_mutex); @@ -328,7 +333,8 @@ void nf_conntrack_l4proto_unregister(struct nf_conntrack_l4proto *l4proto) synchronize_rcu(); /* 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); -- 1.5.6.3