diff options
Diffstat (limited to 'net/ipv4/fib_trie.c')
-rw-r--r-- | net/ipv4/fib_trie.c | 30 |
1 files changed, 5 insertions, 25 deletions
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c index e1600ad8fb0e..5cb72786a8af 100644 --- a/net/ipv4/fib_trie.c +++ b/net/ipv4/fib_trie.c | |||
@@ -22,8 +22,6 @@ | |||
22 | * IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson | 22 | * IP-address lookup using LC-tries. Stefan Nilsson and Gunnar Karlsson |
23 | * IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 | 23 | * IEEE Journal on Selected Areas in Communications, 17(6):1083-1092, June 1999 |
24 | * | 24 | * |
25 | * Version: $Id: fib_trie.c,v 1.3 2005/06/08 14:20:01 robert Exp $ | ||
26 | * | ||
27 | * | 25 | * |
28 | * Code from fib_hash has been reused which includes the following header: | 26 | * Code from fib_hash has been reused which includes the following header: |
29 | * | 27 | * |
@@ -1273,7 +1271,7 @@ static int fn_trie_insert(struct fib_table *tb, struct fib_config *cfg) | |||
1273 | 1271 | ||
1274 | fib_release_info(fi_drop); | 1272 | fib_release_info(fi_drop); |
1275 | if (state & FA_S_ACCESSED) | 1273 | if (state & FA_S_ACCESSED) |
1276 | rt_cache_flush(-1); | 1274 | rt_cache_flush(cfg->fc_nlinfo.nl_net, -1); |
1277 | rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, | 1275 | rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, |
1278 | tb->tb_id, &cfg->fc_nlinfo, NLM_F_REPLACE); | 1276 | tb->tb_id, &cfg->fc_nlinfo, NLM_F_REPLACE); |
1279 | 1277 | ||
@@ -1318,7 +1316,7 @@ static int fn_trie_insert(struct fib_table *tb, struct fib_config *cfg) | |||
1318 | list_add_tail_rcu(&new_fa->fa_list, | 1316 | list_add_tail_rcu(&new_fa->fa_list, |
1319 | (fa ? &fa->fa_list : fa_head)); | 1317 | (fa ? &fa->fa_list : fa_head)); |
1320 | 1318 | ||
1321 | rt_cache_flush(-1); | 1319 | rt_cache_flush(cfg->fc_nlinfo.nl_net, -1); |
1322 | rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, tb->tb_id, | 1320 | rtmsg_fib(RTM_NEWROUTE, htonl(key), new_fa, plen, tb->tb_id, |
1323 | &cfg->fc_nlinfo, 0); | 1321 | &cfg->fc_nlinfo, 0); |
1324 | succeeded: | 1322 | succeeded: |
@@ -1661,7 +1659,7 @@ static int fn_trie_delete(struct fib_table *tb, struct fib_config *cfg) | |||
1661 | trie_leaf_remove(t, l); | 1659 | trie_leaf_remove(t, l); |
1662 | 1660 | ||
1663 | if (fa->fa_state & FA_S_ACCESSED) | 1661 | if (fa->fa_state & FA_S_ACCESSED) |
1664 | rt_cache_flush(-1); | 1662 | rt_cache_flush(cfg->fc_nlinfo.nl_net, -1); |
1665 | 1663 | ||
1666 | fib_release_info(fa->fa_info); | 1664 | fib_release_info(fa->fa_info); |
1667 | alias_free_mem_rcu(fa); | 1665 | alias_free_mem_rcu(fa); |
@@ -2253,25 +2251,7 @@ static int fib_triestat_seq_show(struct seq_file *seq, void *v) | |||
2253 | 2251 | ||
2254 | static int fib_triestat_seq_open(struct inode *inode, struct file *file) | 2252 | static int fib_triestat_seq_open(struct inode *inode, struct file *file) |
2255 | { | 2253 | { |
2256 | int err; | 2254 | return single_open_net(inode, file, fib_triestat_seq_show); |
2257 | struct net *net; | ||
2258 | |||
2259 | net = get_proc_net(inode); | ||
2260 | if (net == NULL) | ||
2261 | return -ENXIO; | ||
2262 | err = single_open(file, fib_triestat_seq_show, net); | ||
2263 | if (err < 0) { | ||
2264 | put_net(net); | ||
2265 | return err; | ||
2266 | } | ||
2267 | return 0; | ||
2268 | } | ||
2269 | |||
2270 | static int fib_triestat_seq_release(struct inode *ino, struct file *f) | ||
2271 | { | ||
2272 | struct seq_file *seq = f->private_data; | ||
2273 | put_net(seq->private); | ||
2274 | return single_release(ino, f); | ||
2275 | } | 2255 | } |
2276 | 2256 | ||
2277 | static const struct file_operations fib_triestat_fops = { | 2257 | static const struct file_operations fib_triestat_fops = { |
@@ -2279,7 +2259,7 @@ static const struct file_operations fib_triestat_fops = { | |||
2279 | .open = fib_triestat_seq_open, | 2259 | .open = fib_triestat_seq_open, |
2280 | .read = seq_read, | 2260 | .read = seq_read, |
2281 | .llseek = seq_lseek, | 2261 | .llseek = seq_lseek, |
2282 | .release = fib_triestat_seq_release, | 2262 | .release = single_release_net, |
2283 | }; | 2263 | }; |
2284 | 2264 | ||
2285 | static struct node *fib_trie_get_idx(struct seq_file *seq, loff_t pos) | 2265 | static struct node *fib_trie_get_idx(struct seq_file *seq, loff_t pos) |