diff mbox

[RFC,v2,11/11] br_netfilter: switch all sysctls to per-netns processing

Message ID 5370C569.6010708@parallels.com
State Superseded
Headers show

Commit Message

Vasily Averin May 12, 2014, 12:58 p.m. UTC
Signed-off-by: Vasily Averin <vvs@openvz.org>
---
 net/bridge/br_netfilter.c |    8 +++++---
 1 files changed, 5 insertions(+), 3 deletions(-)
diff mbox

Patch

diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
index ed3b6ce..f4b6b43 100644
--- a/net/bridge/br_netfilter.c
+++ b/net/bridge/br_netfilter.c
@@ -71,10 +71,9 @@  static inline struct brnf_net *brnf_net(const struct net *net)
 {
 	return net_generic(net, brnf_net_id);
 }
-#endif
 
-#ifdef CONFIG_SYSCTL
-#define brnf_flag(skb, flag)		init_brnf_net.flag
+#define skb_netns(skb)			dev_net((skb)->dev)
+#define brnf_flag(skb, flag)		brnf_net(skb_netns(skb))->flag
 #else
 #define brnf_flag(skb, flag)		brnf_##flag
 #endif
@@ -1086,6 +1085,9 @@  static int brnf_sysctl_net_register(struct brnf_net *bn)
 		if (!table)
 			goto err_alloc;
 	}
+	for (i = 0; table[i].data; i++)
+		table[i].data += (char *)bn - (char *)&init_brnf_net;
+
 	hdr = register_net_sysctl(bn->net, "net/bridge", table);
 	if (!hdr)
 		goto err_reg;