aboutsummaryrefslogtreecommitdiffstats
path: root/net/decnet
diff options
context:
space:
mode:
authorDenis V. Lunev <den@openvz.org>2007-11-20 01:26:51 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 17:54:25 -0500
commit97c53cacf00d1f5aa04adabfebcc806ca8b22b10 (patch)
tree6b7223df312aa27a5017c4d7c4d1e500a33ed8d8 /net/decnet
parentb854272b3c732316676e9128f7b9e6f1e1ff88b0 (diff)
[NET]: Make rtnetlink infrastructure network namespace aware (v3)
After this patch none of the netlink callback support anything except the initial network namespace but the rtnetlink infrastructure now handles multiple network namespaces. Changes from v2: - IPv6 addrlabel processing Changes from v1: - no need for special rtnl_unlock handling - fixed IPv6 ndisc Signed-off-by: Denis V. Lunev <den@openvz.org> Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/decnet')
-rw-r--r--net/decnet/dn_dev.c4
-rw-r--r--net/decnet/dn_route.c2
-rw-r--r--net/decnet/dn_table.c4
3 files changed, 5 insertions, 5 deletions
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index 94256845a05..39c89c68204 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -793,10 +793,10 @@ static void dn_ifaddr_notify(int event, struct dn_ifaddr *ifa)
793 kfree_skb(skb); 793 kfree_skb(skb);
794 goto errout; 794 goto errout;
795 } 795 }
796 err = rtnl_notify(skb, 0, RTNLGRP_DECnet_IFADDR, NULL, GFP_KERNEL); 796 err = rtnl_notify(skb, &init_net, 0, RTNLGRP_DECnet_IFADDR, NULL, GFP_KERNEL);
797errout: 797errout:
798 if (err < 0) 798 if (err < 0)
799 rtnl_set_sk_err(RTNLGRP_DECnet_IFADDR, err); 799 rtnl_set_sk_err(&init_net, RTNLGRP_DECnet_IFADDR, err);
800} 800}
801 801
802static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) 802static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
diff --git a/net/decnet/dn_route.c b/net/decnet/dn_route.c
index 28aeba15cf1..5d742f1420d 100644
--- a/net/decnet/dn_route.c
+++ b/net/decnet/dn_route.c
@@ -1587,7 +1587,7 @@ static int dn_cache_getroute(struct sk_buff *in_skb, struct nlmsghdr *nlh, void
1587 goto out_free; 1587 goto out_free;
1588 } 1588 }
1589 1589
1590 return rtnl_unicast(skb, NETLINK_CB(in_skb).pid); 1590 return rtnl_unicast(skb, &init_net, NETLINK_CB(in_skb).pid);
1591 1591
1592out_free: 1592out_free:
1593 kfree_skb(skb); 1593 kfree_skb(skb);
diff --git a/net/decnet/dn_table.c b/net/decnet/dn_table.c
index a3bdb8dd1fb..e09d915dbd7 100644
--- a/net/decnet/dn_table.c
+++ b/net/decnet/dn_table.c
@@ -375,10 +375,10 @@ static void dn_rtmsg_fib(int event, struct dn_fib_node *f, int z, u32 tb_id,
375 kfree_skb(skb); 375 kfree_skb(skb);
376 goto errout; 376 goto errout;
377 } 377 }
378 err = rtnl_notify(skb, pid, RTNLGRP_DECnet_ROUTE, nlh, GFP_KERNEL); 378 err = rtnl_notify(skb, &init_net, pid, RTNLGRP_DECnet_ROUTE, nlh, GFP_KERNEL);
379errout: 379errout:
380 if (err < 0) 380 if (err < 0)
381 rtnl_set_sk_err(RTNLGRP_DECnet_ROUTE, err); 381 rtnl_set_sk_err(&init_net, RTNLGRP_DECnet_ROUTE, err);
382} 382}
383 383
384static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, 384static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb,