This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / net / ipv6 / ip6_fib.c
index 798d78c..1816b81 100644 (file)
@@ -433,7 +433,7 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
 
        if (fn->fn_flags&RTN_TL_ROOT &&
            fn->leaf == &ip6_null_entry &&
-           !(rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) ){
+           !(rt->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF | RTF_ALLONLINK)) ){
                fn->leaf = rt;
                rt->u.next = NULL;
                goto out;
@@ -451,8 +451,8 @@ static int fib6_add_rt2node(struct fib6_node *fn, struct rt6_info *rt,
 
                        if (iter->rt6i_dev == rt->rt6i_dev &&
                            iter->rt6i_idev == rt->rt6i_idev &&
-                           ipv6_addr_equal(&iter->rt6i_gateway,
-                                           &rt->rt6i_gateway)) {
+                           ipv6_addr_cmp(&iter->rt6i_gateway,
+                                          &rt->rt6i_gateway) == 0) {
                                if (!(iter->rt6i_flags&RTF_EXPIRES))
                                        return -EEXIST;
                                iter->rt6i_expires = rt->rt6i_expires;