diff options
author | Denis V. Lunev <den@openvz.org> | 2007-11-20 01:26:51 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:54:25 -0500 |
commit | 97c53cacf00d1f5aa04adabfebcc806ca8b22b10 (patch) | |
tree | 6b7223df312aa27a5017c4d7c4d1e500a33ed8d8 /net/decnet | |
parent | b854272b3c732316676e9128f7b9e6f1e1ff88b0 (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.c | 4 | ||||
-rw-r--r-- | net/decnet/dn_route.c | 2 | ||||
-rw-r--r-- | net/decnet/dn_table.c | 4 |
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); |
797 | errout: | 797 | errout: |
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 | ||
802 | static int dn_nl_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb) | 802 | static 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 | ||
1592 | out_free: | 1592 | out_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); |
379 | errout: | 379 | errout: |
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 | ||
384 | static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, | 384 | static __inline__ int dn_hash_dump_bucket(struct sk_buff *skb, |