route.c (5bb053bef82523a8fd78d650bca81c9f114fa276) route.c (7d6850f7c618d8f13d7945dd0dcee98223be6459)
1/*
2 * Linux INET6 implementation
3 * FIB front-end.
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * This program is free software; you can redistribute it and/or

--- 2215 unchanged lines hidden (view full) ---

2224
2225 bh_lock_sock(sk);
2226 if (!sock_owned_by_user(sk) && !ipv6_addr_v4mapped(&sk->sk_v6_daddr))
2227 ip6_datagram_dst_update(sk, false);
2228 bh_unlock_sock(sk);
2229}
2230EXPORT_SYMBOL_GPL(ip6_sk_update_pmtu);
2231
1/*
2 * Linux INET6 implementation
3 * FIB front-end.
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * This program is free software; you can redistribute it and/or

--- 2215 unchanged lines hidden (view full) ---

2224
2225 bh_lock_sock(sk);
2226 if (!sock_owned_by_user(sk) && !ipv6_addr_v4mapped(&sk->sk_v6_daddr))
2227 ip6_datagram_dst_update(sk, false);
2228 bh_unlock_sock(sk);
2229}
2230EXPORT_SYMBOL_GPL(ip6_sk_update_pmtu);
2231
2232void ip6_sk_dst_store_flow(struct sock *sk, struct dst_entry *dst,
2233 const struct flowi6 *fl6)
2234{
2235#ifdef CONFIG_IPV6_SUBTREES
2236 struct ipv6_pinfo *np = inet6_sk(sk);
2237#endif
2238
2239 ip6_dst_store(sk, dst,
2240 ipv6_addr_equal(&fl6->daddr, &sk->sk_v6_daddr) ?
2241 &sk->sk_v6_daddr : NULL,
2242#ifdef CONFIG_IPV6_SUBTREES
2243 ipv6_addr_equal(&fl6->saddr, &np->saddr) ?
2244 &np->saddr :
2245#endif
2246 NULL);
2247}
2248
2232/* Handle redirects */
2233struct ip6rd_flowi {
2234 struct flowi6 fl6;
2235 struct in6_addr gateway;
2236};
2237
2238static struct rt6_info *__ip6_route_redirect(struct net *net,
2239 struct fib6_table *table,

--- 3012 unchanged lines hidden ---
2249/* Handle redirects */
2250struct ip6rd_flowi {
2251 struct flowi6 fl6;
2252 struct in6_addr gateway;
2253};
2254
2255static struct rt6_info *__ip6_route_redirect(struct net *net,
2256 struct fib6_table *table,

--- 3012 unchanged lines hidden ---