Index: /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_xmit.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_xmit.c (revision 269) +++ /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_xmit.c (revision 384) @@ -139,11 +139,11 @@ }, }, }; rt = (struct rt6_info *)ip6_route_output(&init_net, - NULL, &fl); + NULL, &fl, 0); if (!rt) { spin_unlock(&dest->dst_lock); IP_VS_DBG_RL("ip6_route_output error, dest: %pI6\n", &dest->addr.in6); return NULL; @@ -165,11 +165,11 @@ }, }, }, }; - rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl); + rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl, 0); if (!rt) { IP_VS_DBG_RL("ip6_route_output error, dest: %pI6\n", &cp->daddr.in6); return NULL; } @@ -299,11 +299,11 @@ .saddr = { .s6_addr32 = {0, 0, 0, 0} }, } }, }; EnterFunction(10); - rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl); + rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl, 0); if (!rt) { IP_VS_DBG_RL("%s(): ip6_route_output error, dest: %pI6\n", __func__, &iph->daddr); goto tx_error_icmp; } Index: /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_ctl.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_ctl.c (revision 269) +++ /trunk/kernel/linux-2.6.35.14/net/netfilter/ipvs/ip_vs_ctl.c (revision 384) @@ -110,11 +110,11 @@ .ip6_u = { .daddr = *addr, .saddr = { .s6_addr32 = {0, 0, 0, 0} }, } }, }; - rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl); + rt = (struct rt6_info *)ip6_route_output(&init_net, NULL, &fl, 0); if (rt && rt->rt6i_dev && (rt->rt6i_dev->flags & IFF_LOOPBACK)) return 1; return 0; } Index: /trunk/kernel/linux-2.6.35.14/net/netfilter/xt_TEE.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/netfilter/xt_TEE.c (revision 269) +++ /trunk/kernel/linux-2.6.35.14/net/netfilter/xt_TEE.c (revision 384) @@ -151,11 +151,11 @@ fl.oif = info->priv->oif; } fl.nl_u.ip6_u.daddr = info->gw.in6; fl.nl_u.ip6_u.flowlabel = ((iph->flow_lbl[0] & 0xF) << 16) | (iph->flow_lbl[1] << 8) | iph->flow_lbl[2]; - dst = ip6_route_output(net, NULL, &fl); + dst = ip6_route_output(net, NULL, &fl, 0); if (dst == NULL) return false; skb_dst_drop(skb); skb_dst_set(skb, dst); Index: /trunk/kernel/linux-2.6.35.14/net/sctp/ipv6.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/sctp/ipv6.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/sctp/ipv6.c (revision 384) @@ -256,11 +256,11 @@ if (saddr) { ipv6_addr_copy(&fl.fl6_src, &saddr->v6.sin6_addr); SCTP_DEBUG_PRINTK("SRC=%pI6 - ", &fl.fl6_src); } - dst = ip6_route_output(&init_net, NULL, &fl); + dst = ip6_route_output(&init_net, NULL, &fl, 0); if (!dst->error) { struct rt6_info *rt; rt = (struct rt6_info *)dst; SCTP_DEBUG_PRINTK("rt6_dst:%pI6 rt6_src:%pI6\n", &rt->rt6i_dst.addr, &rt->rt6i_src.addr); Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/ndisc.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/ndisc.c (revision 379) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/ndisc.c (revision 384) @@ -1531,11 +1531,11 @@ } icmpv6_flow_init(sk, &fl, NDISC_REDIRECT, &saddr_buf, &ipv6_hdr(skb)->saddr, dev->ifindex); - dst = ip6_route_output(net, NULL, &fl); + dst = ip6_route_output(net, NULL, &fl, 0); if (dst == NULL) return; err = xfrm_lookup(net, &dst, &fl, NULL, 0); if (err) Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter/ip6t_REJECT.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter/ip6t_REJECT.c (revision 379) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter/ip6t_REJECT.c (revision 384) @@ -96,11 +96,11 @@ ipv6_addr_copy(&fl.fl6_src, &oip6h->daddr); ipv6_addr_copy(&fl.fl6_dst, &oip6h->saddr); fl.fl_ip_sport = otcph.dest; fl.fl_ip_dport = otcph.source; security_skb_classify_flow(oldskb, &fl); - dst = ip6_route_output(net, NULL, &fl); + dst = ip6_route_output(net, NULL, &fl, 0); if (dst == NULL || dst->error) { dst_release(dst); return; } if (xfrm_lookup(net, &dst, &fl, NULL, 0)) Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6_output.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6_output.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6_output.c (revision 384) @@ -927,11 +927,11 @@ { int err; struct net *net = sock_net(sk); if (*dst == NULL) - *dst = ip6_route_output(net, sk, fl); + *dst = ip6_route_output(net, sk, fl, 0); if ((err = (*dst)->error)) goto out_err_release; if (ipv6_addr_any(&fl->fl6_src)) { @@ -970,11 +970,11 @@ * default router instead */ dst_release(*dst); memcpy(&fl_gw, fl, sizeof(struct flowi)); memset(&fl_gw.fl6_dst, 0, sizeof(struct in6_addr)); - *dst = ip6_route_output(net, sk, &fl_gw); + *dst = ip6_route_output(net, sk, &fl_gw, 0); if ((err = (*dst)->error)) goto out_err_release; } } #endif Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/xfrm6_policy.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/xfrm6_policy.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/xfrm6_policy.c (revision 384) @@ -36,11 +36,11 @@ memcpy(&fl.fl6_dst, daddr, sizeof(fl.fl6_dst)); if (saddr) memcpy(&fl.fl6_src, saddr, sizeof(fl.fl6_src)); - dst = ip6_route_output(net, NULL, &fl); + dst = ip6_route_output(net, NULL, &fl, 0); err = dst->error; if (dst->error) { dst_release(dst); dst = ERR_PTR(err); Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/netfilter.c (revision 384) @@ -22,11 +22,11 @@ { .ip6_u = { .daddr = iph->daddr, .saddr = iph->saddr, } }, }; - dst = ip6_route_output(net, skb->sk, &fl); + dst = ip6_route_output(net, skb->sk, &fl, 0); if (dst->error) { IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); LIMIT_NETDEBUG(KERN_DEBUG "ip6_route_me_harder: No more route.\n"); dst_release(dst); return -EINVAL; @@ -91,11 +91,11 @@ return 0; } static int nf_ip6_route(struct dst_entry **dst, struct flowi *fl) { - *dst = ip6_route_output(&init_net, NULL, fl); + *dst = ip6_route_output(&init_net, NULL, fl, 0); return (*dst)->error; } __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, unsigned int dataoff, u_int8_t protocol) Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6mr.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6mr.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/ip6mr.c (revision 384) @@ -1845,11 +1845,11 @@ .nl_u = { .ip6_u = { .daddr = ipv6h->daddr, } } }; - dst = ip6_route_output(net, NULL, &fl); + dst = ip6_route_output(net, NULL, &fl, 0); if (!dst) goto out_free; skb_dst_drop(skb); skb_dst_set(skb, dst); Index: /trunk/kernel/linux-2.6.35.14/net/ipv6/icmp.c =================================================================== --- /trunk/kernel/linux-2.6.35.14/net/ipv6/icmp.c (revision 68) +++ /trunk/kernel/linux-2.6.35.14/net/ipv6/icmp.c (revision 384) @@ -175,11 +175,11 @@ /* * Look up the output route. * XXX: perhaps the expire for routing entries cloned by * this lookup should be more aggressive (not longer than timeout). */ - dst = ip6_route_output(net, sk, fl); + dst = ip6_route_output(net, sk, fl, 0); if (dst->error) { IP6_INC_STATS(net, ip6_dst_idev(dst), IPSTATS_MIB_OUTNOROUTES); } else if (dst->dev && (dst->dev->flags&IFF_LOOPBACK)) { res = 1;