]> Pileus Git - ~andy/linux/blobdiff - net/ipv4/fib_trie.c
hlist: drop the node parameter from iterators
[~andy/linux] / net / ipv4 / fib_trie.c
index 31d771ca9a709f71328c1734433cecba1fde40fd..ff06b7543d9ff1310761c227c2e7b8f9ef1c68a0 100644 (file)
@@ -920,10 +920,9 @@ nomem:
 static struct leaf_info *find_leaf_info(struct leaf *l, int plen)
 {
        struct hlist_head *head = &l->list;
-       struct hlist_node *node;
        struct leaf_info *li;
 
-       hlist_for_each_entry_rcu(li, node, head, hlist)
+       hlist_for_each_entry_rcu(li, head, hlist)
                if (li->plen == plen)
                        return li;
 
@@ -943,12 +942,11 @@ static inline struct list_head *get_fa_head(struct leaf *l, int plen)
 static void insert_leaf_info(struct hlist_head *head, struct leaf_info *new)
 {
        struct leaf_info *li = NULL, *last = NULL;
-       struct hlist_node *node;
 
        if (hlist_empty(head)) {
                hlist_add_head_rcu(&new->hlist, head);
        } else {
-               hlist_for_each_entry(li, node, head, hlist) {
+               hlist_for_each_entry(li, head, hlist) {
                        if (new->plen > li->plen)
                                break;
 
@@ -1354,9 +1352,8 @@ static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
 {
        struct leaf_info *li;
        struct hlist_head *hhead = &l->list;
-       struct hlist_node *node;
 
-       hlist_for_each_entry_rcu(li, node, hhead, hlist) {
+       hlist_for_each_entry_rcu(li, hhead, hlist) {
                struct fib_alias *fa;
 
                if (l->key != (key & li->mask_plen))
@@ -1740,10 +1737,10 @@ static int trie_flush_leaf(struct leaf *l)
 {
        int found = 0;
        struct hlist_head *lih = &l->list;
-       struct hlist_node *node, *tmp;
+       struct hlist_node *tmp;
        struct leaf_info *li = NULL;
 
-       hlist_for_each_entry_safe(li, node, tmp, lih, hlist) {
+       hlist_for_each_entry_safe(li, tmp, lih, hlist) {
                found += trie_flush_list(&li->falh);
 
                if (list_empty(&li->falh)) {
@@ -1895,14 +1892,13 @@ static int fn_trie_dump_leaf(struct leaf *l, struct fib_table *tb,
                        struct sk_buff *skb, struct netlink_callback *cb)
 {
        struct leaf_info *li;
-       struct hlist_node *node;
        int i, s_i;
 
        s_i = cb->args[4];
        i = 0;
 
        /* rcu_read_lock is hold by caller */
-       hlist_for_each_entry_rcu(li, node, &l->list, hlist) {
+       hlist_for_each_entry_rcu(li, &l->list, hlist) {
                if (i < s_i) {
                        i++;
                        continue;
@@ -2092,14 +2088,13 @@ static void trie_collect_stats(struct trie *t, struct trie_stat *s)
                if (IS_LEAF(n)) {
                        struct leaf *l = (struct leaf *)n;
                        struct leaf_info *li;
-                       struct hlist_node *tmp;
 
                        s->leaves++;
                        s->totdepth += iter.depth;
                        if (iter.depth > s->maxdepth)
                                s->maxdepth = iter.depth;
 
-                       hlist_for_each_entry_rcu(li, tmp, &l->list, hlist)
+                       hlist_for_each_entry_rcu(li, &l->list, hlist)
                                ++s->prefixes;
                } else {
                        const struct tnode *tn = (const struct tnode *) n;
@@ -2200,10 +2195,9 @@ static int fib_triestat_seq_show(struct seq_file *seq, void *v)
 
        for (h = 0; h < FIB_TABLE_HASHSZ; h++) {
                struct hlist_head *head = &net->ipv4.fib_table_hash[h];
-               struct hlist_node *node;
                struct fib_table *tb;
 
-               hlist_for_each_entry_rcu(tb, node, head, tb_hlist) {
+               hlist_for_each_entry_rcu(tb, head, tb_hlist) {
                        struct trie *t = (struct trie *) tb->tb_data;
                        struct trie_stat stat;
 
@@ -2245,10 +2239,9 @@ static struct rt_trie_node *fib_trie_get_idx(struct seq_file *seq, loff_t pos)
 
        for (h = 0; h < FIB_TABLE_HASHSZ; h++) {
                struct hlist_head *head = &net->ipv4.fib_table_hash[h];
-               struct hlist_node *node;
                struct fib_table *tb;
 
-               hlist_for_each_entry_rcu(tb, node, head, tb_hlist) {
+               hlist_for_each_entry_rcu(tb, head, tb_hlist) {
                        struct rt_trie_node *n;
 
                        for (n = fib_trie_get_first(iter,
@@ -2298,7 +2291,7 @@ static void *fib_trie_seq_next(struct seq_file *seq, void *v, loff_t *pos)
        /* new hash chain */
        while (++h < FIB_TABLE_HASHSZ) {
                struct hlist_head *head = &net->ipv4.fib_table_hash[h];
-               hlist_for_each_entry_rcu(tb, tb_node, head, tb_hlist) {
+               hlist_for_each_entry_rcu(tb, head, tb_hlist) {
                        n = fib_trie_get_first(iter, (struct trie *) tb->tb_data);
                        if (n)
                                goto found;
@@ -2381,13 +2374,12 @@ static int fib_trie_seq_show(struct seq_file *seq, void *v)
        } else {
                struct leaf *l = (struct leaf *) n;
                struct leaf_info *li;
-               struct hlist_node *node;
                __be32 val = htonl(l->key);
 
                seq_indent(seq, iter->depth);
                seq_printf(seq, "  |-- %pI4\n", &val);
 
-               hlist_for_each_entry_rcu(li, node, &l->list, hlist) {
+               hlist_for_each_entry_rcu(li, &l->list, hlist) {
                        struct fib_alias *fa;
 
                        list_for_each_entry_rcu(fa, &li->falh, fa_list) {
@@ -2532,7 +2524,6 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
 {
        struct leaf *l = v;
        struct leaf_info *li;
-       struct hlist_node *node;
 
        if (v == SEQ_START_TOKEN) {
                seq_printf(seq, "%-127s\n", "Iface\tDestination\tGateway "
@@ -2541,7 +2532,7 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
                return 0;
        }
 
-       hlist_for_each_entry_rcu(li, node, &l->list, hlist) {
+       hlist_for_each_entry_rcu(li, &l->list, hlist) {
                struct fib_alias *fa;
                __be32 mask, prefix;
 
@@ -2607,31 +2598,31 @@ static const struct file_operations fib_route_fops = {
 
 int __net_init fib_proc_init(struct net *net)
 {
-       if (!proc_net_fops_create(net, "fib_trie", S_IRUGO, &fib_trie_fops))
+       if (!proc_create("fib_trie", S_IRUGO, net->proc_net, &fib_trie_fops))
                goto out1;
 
-       if (!proc_net_fops_create(net, "fib_triestat", S_IRUGO,
-                                 &fib_triestat_fops))
+       if (!proc_create("fib_triestat", S_IRUGO, net->proc_net,
+                        &fib_triestat_fops))
                goto out2;
 
-       if (!proc_net_fops_create(net, "route", S_IRUGO, &fib_route_fops))
+       if (!proc_create("route", S_IRUGO, net->proc_net, &fib_route_fops))
                goto out3;
 
        return 0;
 
 out3:
-       proc_net_remove(net, "fib_triestat");
+       remove_proc_entry("fib_triestat", net->proc_net);
 out2:
-       proc_net_remove(net, "fib_trie");
+       remove_proc_entry("fib_trie", net->proc_net);
 out1:
        return -ENOMEM;
 }
 
 void __net_exit fib_proc_exit(struct net *net)
 {
-       proc_net_remove(net, "fib_trie");
-       proc_net_remove(net, "fib_triestat");
-       proc_net_remove(net, "route");
+       remove_proc_entry("fib_trie", net->proc_net);
+       remove_proc_entry("fib_triestat", net->proc_net);
+       remove_proc_entry("route", net->proc_net);
 }
 
 #endif /* CONFIG_PROC_FS */