diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/core/fib_rules.c | 2 | ||||
-rw-r--r-- | net/ipv4/fib_rules.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/net/core/fib_rules.c b/net/core/fib_rules.c index 3cd4f13413f6..42ccaf5b8509 100644 --- a/net/core/fib_rules.c +++ b/net/core/fib_rules.c @@ -29,6 +29,7 @@ int fib_default_rule_add(struct fib_rules_ops *ops, r->pref = pref; r->table = table; r->flags = flags; + r->fr_net = ops->fro_net; /* The lock is not required here, the list in unreacheable * at the moment this function is called */ @@ -242,6 +243,7 @@ static int fib_nl_newrule(struct sk_buff *skb, struct nlmsghdr* nlh, void *arg) err = -ENOMEM; goto errout; } + rule->fr_net = net; if (tb[FRA_PRIORITY]) rule->pref = nla_get_u32(tb[FRA_PRIORITY]); diff --git a/net/ipv4/fib_rules.c b/net/ipv4/fib_rules.c index 3b7affd5cb3b..d2001f1c28a2 100644 --- a/net/ipv4/fib_rules.c +++ b/net/ipv4/fib_rules.c @@ -91,7 +91,7 @@ static int fib4_rule_action(struct fib_rule *rule, struct flowi *flp, goto errout; } - if ((tbl = fib_get_table(&init_net, rule->table)) == NULL) + if ((tbl = fib_get_table(rule->fr_net, rule->table)) == NULL) goto errout; err = tbl->tb_lookup(tbl, flp, (struct fib_result *) arg->result); |