Patchwork [3/3] netfilter: nf_conntrack: remove unnecessary RTNL locking

login
register
mail settings
Submitter Patrick McHardy
Date Aug. 19, 2012, 8:16 p.m.
Message ID <1345407370-30009-4-git-send-email-kaber@trash.net>
Download mbox | patch
Permalink /patch/178588/
State Accepted
Headers show

Comments

Patrick McHardy - Aug. 19, 2012, 8:16 p.m.
Locking the rtnl was added to nf_conntrack_l{3,4}_proto_unregister()
for walking the network namespace list. This is not done anymore since
we have proper namespace support in the protocols now, so we don't
need to take the RTNL anymore.

Signed-off-by: Patrick McHardy <kaber@trash.net>
---
 net/netfilter/nf_conntrack_proto.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)
Pablo Neira - Aug. 20, 2012, 2:53 p.m.
On Sun, Aug 19, 2012 at 10:16:10PM +0200, Patrick McHardy wrote:
> Locking the rtnl was added to nf_conntrack_l{3,4}_proto_unregister()
> for walking the network namespace list. This is not done anymore since
> we have proper namespace support in the protocols now, so we don't
> need to take the RTNL anymore.

Applied, thanks. Also enqueued to net-next.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
index 0dc6385..51e928d 100644
--- a/net/netfilter/nf_conntrack_proto.c
+++ b/net/netfilter/nf_conntrack_proto.c
@@ -21,7 +21,6 @@ 
 #include <linux/notifier.h>
 #include <linux/kernel.h>
 #include <linux/netdevice.h>
-#include <linux/rtnetlink.h>
 
 #include <net/netfilter/nf_conntrack.h>
 #include <net/netfilter/nf_conntrack_l3proto.h>
@@ -294,9 +293,7 @@  void nf_conntrack_l3proto_unregister(struct net *net,
 	nf_ct_l3proto_unregister_sysctl(net, proto);
 
 	/* Remove all contrack entries for this protocol */
-	rtnl_lock();
 	nf_ct_iterate_cleanup(net, kill_l3proto, proto);
-	rtnl_unlock();
 }
 EXPORT_SYMBOL_GPL(nf_conntrack_l3proto_unregister);
 
@@ -502,9 +499,7 @@  void nf_conntrack_l4proto_unregister(struct net *net,
 	nf_ct_l4proto_unregister_sysctl(net, pn, l4proto);
 
 	/* Remove all contrack entries for this protocol */
-	rtnl_lock();
 	nf_ct_iterate_cleanup(net, kill_l4proto, l4proto);
-	rtnl_unlock();
 }
 EXPORT_SYMBOL_GPL(nf_conntrack_l4proto_unregister);