seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char
[cascardo/linux.git] / net / ipv4 / fib_frontend.c
index 1b25daf..c3b8047 100644 (file)
@@ -93,9 +93,6 @@ struct fib_table *fib_new_table(struct net *net, u32 id)
                return NULL;
 
        switch (id) {
-       case RT_TABLE_LOCAL:
-               rcu_assign_pointer(net->ipv4.fib_local, tb);
-               break;
        case RT_TABLE_MAIN:
                rcu_assign_pointer(net->ipv4.fib_main, tb);
                break;
@@ -137,9 +134,6 @@ static void fib_replace_table(struct net *net, struct fib_table *old,
 {
 #ifdef CONFIG_IP_MULTIPLE_TABLES
        switch (new->tb_id) {
-       case RT_TABLE_LOCAL:
-               rcu_assign_pointer(net->ipv4.fib_local, new);
-               break;
        case RT_TABLE_MAIN:
                rcu_assign_pointer(net->ipv4.fib_main, new);
                break;
@@ -188,26 +182,13 @@ static void fib_flush(struct net *net)
                struct fib_table *tb;
 
                hlist_for_each_entry_safe(tb, tmp, head, tb_hlist)
-                       flushed += fib_table_flush(tb);
+                       flushed += fib_table_flush(net, tb);
        }
 
        if (flushed)
                rt_cache_flush(net);
 }
 
-void fib_flush_external(struct net *net)
-{
-       struct fib_table *tb;
-       struct hlist_head *head;
-       unsigned int h;
-
-       for (h = 0; h < FIB_TABLE_HASHSZ; h++) {
-               head = &net->ipv4.fib_table_hash[h];
-               hlist_for_each_entry(tb, head, tb_hlist)
-                       fib_table_flush_external(tb);
-       }
-}
-
 /*
  * Find address type as if only "dev" was present in the system. If
  * on_dev is NULL then all interfaces are taken into consideration.
@@ -596,13 +577,13 @@ int ip_rt_ioctl(struct net *net, unsigned int cmd, void __user *arg)
                        if (cmd == SIOCDELRT) {
                                tb = fib_get_table(net, cfg.fc_table);
                                if (tb)
-                                       err = fib_table_delete(tb, &cfg);
+                                       err = fib_table_delete(net, tb, &cfg);
                                else
                                        err = -ESRCH;
                        } else {
                                tb = fib_new_table(net, cfg.fc_table);
                                if (tb)
-                                       err = fib_table_insert(tb, &cfg);
+                                       err = fib_table_insert(net, tb, &cfg);
                                else
                                        err = -ENOBUFS;
                        }
@@ -725,7 +706,7 @@ static int inet_rtm_delroute(struct sk_buff *skb, struct nlmsghdr *nlh)
                goto errout;
        }
 
-       err = fib_table_delete(tb, &cfg);
+       err = fib_table_delete(net, tb, &cfg);
 errout:
        return err;
 }
@@ -747,7 +728,7 @@ static int inet_rtm_newroute(struct sk_buff *skb, struct nlmsghdr *nlh)
                goto errout;
        }
 
-       err = fib_table_insert(tb, &cfg);
+       err = fib_table_insert(net, tb, &cfg);
 errout:
        return err;
 }
@@ -834,9 +815,9 @@ static void fib_magic(int cmd, int type, __be32 dst, int dst_len, struct in_ifad
                cfg.fc_scope = RT_SCOPE_HOST;
 
        if (cmd == RTM_NEWROUTE)
-               fib_table_insert(tb, &cfg);
+               fib_table_insert(net, tb, &cfg);
        else
-               fib_table_delete(tb, &cfg);
+               fib_table_delete(net, tb, &cfg);
 }
 
 void fib_add_ifaddr(struct in_ifaddr *ifa)
@@ -1250,7 +1231,6 @@ static void ip_fib_net_exit(struct net *net)
 
        rtnl_lock();
 #ifdef CONFIG_IP_MULTIPLE_TABLES
-       RCU_INIT_POINTER(net->ipv4.fib_local, NULL);
        RCU_INIT_POINTER(net->ipv4.fib_main, NULL);
        RCU_INIT_POINTER(net->ipv4.fib_default, NULL);
 #endif
@@ -1261,7 +1241,7 @@ static void ip_fib_net_exit(struct net *net)
 
                hlist_for_each_entry_safe(tb, tmp, head, tb_hlist) {
                        hlist_del(&tb->tb_hlist);
-                       fib_table_flush(tb);
+                       fib_table_flush(net, tb);
                        fib_free_table(tb);
                }
        }