[IPv6] route: Simplify ip6_ins_rt()
authorThomas Graf <tgraf@suug.ch>
Tue, 22 Aug 2006 07:00:45 +0000 (00:00 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 22 Sep 2006 21:55:11 +0000 (14:55 -0700)
Provide a simple ip6_ins_rt() for the majority of users and
an alternative for the exception via netlink. Avoids code
obfuscation.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip6_route.h
net/ipv6/addrconf.c
net/ipv6/anycast.c
net/ipv6/route.c

index a7e6086..172c476 100644 (file)
@@ -65,10 +65,7 @@ extern int                   ip6_route_add(struct in6_rtmsg *rtmsg,
                                              void *rtattr,
                                              struct netlink_skb_parms *req,
                                              u32 table_id);
-extern int                     ip6_ins_rt(struct rt6_info *,
-                                          struct nlmsghdr *,
-                                          void *rtattr,
-                                          struct netlink_skb_parms *req);
+extern int                     ip6_ins_rt(struct rt6_info *);
 extern int                     ip6_del_rt(struct rt6_info *);
 
 extern int                     ip6_rt_addr_add(struct in6_addr *addr,
index 27f2e33..aafba9e 100644 (file)
@@ -3548,7 +3548,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
 
        switch (event) {
        case RTM_NEWADDR:
-               ip6_ins_rt(ifp->rt, NULL, NULL, NULL);
+               ip6_ins_rt(ifp->rt);
                if (ifp->idev->cnf.forwarding)
                        addrconf_join_anycast(ifp);
                break;
index f6881d7..abbc35a 100644 (file)
@@ -335,7 +335,7 @@ int ipv6_dev_ac_inc(struct net_device *dev, struct in6_addr *addr)
        write_unlock_bh(&idev->lock);
 
        dst_hold(&rt->u.dst);
-       if (ip6_ins_rt(rt, NULL, NULL, NULL))
+       if (ip6_ins_rt(rt))
                dst_release(&rt->u.dst);
 
        addrconf_join_solict(dev, &aca->aca_addr);
index 8d511de..9ec348a 100644 (file)
@@ -546,8 +546,8 @@ struct rt6_info *rt6_lookup(struct in6_addr *daddr, struct in6_addr *saddr,
    be destroyed.
  */
 
-int ip6_ins_rt(struct rt6_info *rt, struct nlmsghdr *nlh,
-               void *_rtattr, struct netlink_skb_parms *req)
+static int __ip6_ins_rt(struct rt6_info *rt, struct nlmsghdr *nlh,
+                       void *_rtattr, struct netlink_skb_parms *req)
 {
        int err;
        struct fib6_table *table;
@@ -560,6 +560,11 @@ int ip6_ins_rt(struct rt6_info *rt, struct nlmsghdr *nlh,
        return err;
 }
 
+int ip6_ins_rt(struct rt6_info *rt)
+{
+       return __ip6_ins_rt(rt, NULL, NULL, NULL);
+}
+
 static struct rt6_info *rt6_alloc_cow(struct rt6_info *ort, struct in6_addr *daddr,
                                      struct in6_addr *saddr)
 {
@@ -657,7 +662,7 @@ restart:
 
        dst_hold(&rt->u.dst);
        if (nrt) {
-               err = ip6_ins_rt(nrt, NULL, NULL, NULL);
+               err = ip6_ins_rt(nrt);
                if (!err)
                        goto out2;
        }
@@ -752,7 +757,7 @@ restart:
 
        dst_hold(&rt->u.dst);
        if (nrt) {
-               err = ip6_ins_rt(nrt, NULL, NULL, NULL);
+               err = ip6_ins_rt(nrt);
                if (!err)
                        goto out2;
        }
@@ -1206,7 +1211,7 @@ install_route:
        rt->u.dst.dev = dev;
        rt->rt6i_idev = idev;
        rt->rt6i_table = table;
-       return ip6_ins_rt(rt, nlh, _rtattr, req);
+       return __ip6_ins_rt(rt, nlh, _rtattr, req);
 
 out:
        if (dev)
@@ -1393,7 +1398,7 @@ restart:
        nrt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(neigh->dev);
        nrt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&nrt->u.dst));
 
-       if (ip6_ins_rt(nrt, NULL, NULL, NULL))
+       if (ip6_ins_rt(nrt))
                goto out;
 
        netevent.old = &rt->u.dst;
@@ -1483,7 +1488,7 @@ void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr,
                dst_set_expires(&nrt->u.dst, ip6_rt_mtu_expires);
                nrt->rt6i_flags |= RTF_DYNAMIC|RTF_EXPIRES;
 
-               ip6_ins_rt(nrt, NULL, NULL, NULL);
+               ip6_ins_rt(nrt);
        }
 out:
        dst_release(&rt->u.dst);