Skip to content

Commit

Permalink
[NETNS]: Add netns parameter to fib_rules_(un)register.
Browse files Browse the repository at this point in the history
The patch extends the different fib rules API in order to pass the
network namespace pointer. That will allow to access the different
tables from a namespace relative object. As usual, the pointer to the
init_net variable is passed as parameter so we don't break the
network.

Acked-by: Benjamin Thery <benjamin.thery@bull.net>
Acked-by: Daniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Denis V. Lunev authored and David S. Miller committed Jan 28, 2008
1 parent 41a7690 commit f8c26b8
Show file tree
Hide file tree
Showing 5 changed files with 9 additions and 9 deletions.
4 changes: 2 additions & 2 deletions include/net/fib_rules.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,8 @@ static inline u32 frh_get_table(struct fib_rule_hdr *frh, struct nlattr **nla)
return frh->table;
}

extern int fib_rules_register(struct fib_rules_ops *);
extern int fib_rules_unregister(struct fib_rules_ops *);
extern int fib_rules_register(struct net *, struct fib_rules_ops *);
extern int fib_rules_unregister(struct net *, struct fib_rules_ops *);
extern void fib_rules_cleanup_ops(struct fib_rules_ops *);

extern int fib_rules_lookup(struct fib_rules_ops *,
Expand Down
4 changes: 2 additions & 2 deletions net/core/fib_rules.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ static void flush_route_cache(struct fib_rules_ops *ops)
ops->flush_cache();
}

int fib_rules_register(struct fib_rules_ops *ops)
int fib_rules_register(struct net *net, struct fib_rules_ops *ops)
{
int err = -EEXIST;
struct fib_rules_ops *o;
Expand Down Expand Up @@ -113,7 +113,7 @@ void fib_rules_cleanup_ops(struct fib_rules_ops *ops)
}
EXPORT_SYMBOL_GPL(fib_rules_cleanup_ops);

int fib_rules_unregister(struct fib_rules_ops *ops)
int fib_rules_unregister(struct net *net, struct fib_rules_ops *ops)
{
int err = 0;
struct fib_rules_ops *o;
Expand Down
4 changes: 2 additions & 2 deletions net/decnet/dn_rules.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,12 +255,12 @@ void __init dn_fib_rules_init(void)
{
BUG_ON(fib_default_rule_add(&dn_fib_rules_ops, 0x7fff,
RT_TABLE_MAIN, 0));
fib_rules_register(&dn_fib_rules_ops);
fib_rules_register(&init_net, &dn_fib_rules_ops);
}

void __exit dn_fib_rules_cleanup(void)
{
fib_rules_unregister(&dn_fib_rules_ops);
fib_rules_unregister(&init_net, &dn_fib_rules_ops);
}


2 changes: 1 addition & 1 deletion net/ipv4/fib_rules.c
Original file line number Diff line number Diff line change
Expand Up @@ -314,5 +314,5 @@ static int __init fib_default_rules_init(void)
void __init fib4_rules_init(void)
{
BUG_ON(fib_default_rules_init());
fib_rules_register(&fib4_rules_ops);
fib_rules_register(&init_net, &fib4_rules_ops);
}
4 changes: 2 additions & 2 deletions net/ipv6/fib6_rules.c
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ int __init fib6_rules_init(void)
if (ret)
goto out;

ret = fib_rules_register(&fib6_rules_ops);
ret = fib_rules_register(&init_net, &fib6_rules_ops);
if (ret)
goto out_default_rules_init;
out:
Expand All @@ -286,5 +286,5 @@ int __init fib6_rules_init(void)

void fib6_rules_cleanup(void)
{
fib_rules_unregister(&fib6_rules_ops);
fib_rules_unregister(&init_net, &fib6_rules_ops);
}

0 comments on commit f8c26b8

Please sign in to comment.