diff options
author | Denis V. Lunev <den@openvz.org> | 2008-01-20 16:46:01 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 15:08:13 -0800 |
commit | 035923833369e4da5d3c4ad0700bc7c367a0fa37 (patch) | |
tree | 2a7e3105e70a543ff2611ffbe7612b4c93ce3bd5 | |
parent | 853f4b505578ea3a1d9c2f5fb4ca58658ea15780 (diff) | |
download | linux-035923833369e4da5d3c4ad0700bc7c367a0fa37.tar.gz linux-035923833369e4da5d3c4ad0700bc7c367a0fa37.tar.bz2 linux-035923833369e4da5d3c4ad0700bc7c367a0fa37.zip |
[FIB]: Add netns to fib_rules_ops.
The backward link from FIB rules operations to the network namespace
will allow to simplify the API a bit.
Signed-off-by: Denis V. Lunev <den@openvz.org>
Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | include/net/fib_rules.h | 1 | ||||
-rw-r--r-- | net/decnet/dn_rules.c | 1 | ||||
-rw-r--r-- | net/ipv4/fib_rules.c | 2 | ||||
-rw-r--r-- | net/ipv6/fib6_rules.c | 1 |
4 files changed, 5 insertions, 0 deletions
diff --git a/include/net/fib_rules.h b/include/net/fib_rules.h index 4f472507129e..6910e0195ca5 100644 --- a/include/net/fib_rules.h +++ b/include/net/fib_rules.h @@ -67,6 +67,7 @@ struct fib_rules_ops const struct nla_policy *policy; struct list_head rules_list; struct module *owner; + struct net *fro_net; }; #define FRA_GENERIC_POLICY \ diff --git a/net/decnet/dn_rules.c b/net/decnet/dn_rules.c index c1fae23d2263..964e65887603 100644 --- a/net/decnet/dn_rules.c +++ b/net/decnet/dn_rules.c @@ -249,6 +249,7 @@ static struct fib_rules_ops dn_fib_rules_ops = { .policy = dn_fib_rule_policy, .rules_list = LIST_HEAD_INIT(dn_fib_rules_ops.rules_list), .owner = THIS_MODULE, + .fro_net = &init_net, }; void __init dn_fib_rules_init(void) diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c index 72232ab4ecb1..8d0ebe7f360d 100644 --- a/net/ipv4/fib_rules.c +++ b/net/ipv4/fib_rules.c @@ -315,6 +315,8 @@ int __net_init fib4_rules_init(struct net *net) if (ops == NULL) return -ENOMEM; INIT_LIST_HEAD(&ops->rules_list); + ops->fro_net = net; + fib_rules_register(net, ops); err = fib_default_rules_init(ops); diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index 76437a1fcab0..ead5ab2da9a2 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -249,6 +249,7 @@ static struct fib_rules_ops fib6_rules_ops = { .policy = fib6_rule_policy, .rules_list = LIST_HEAD_INIT(fib6_rules_ops.rules_list), .owner = THIS_MODULE, + .fro_net = &init_net, }; static int __init fib6_default_rules_init(void) |