route.c (281d1bbd34b734e4f22b30b6f3b673dda46a7470) | route.c (b0a1ba59921eaaa9cb8f97bb35f2e6870fcdfedc) |
---|---|
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 --- 1228 unchanged lines hidden (view full) --- 1237 continue; 1238 break; 1239 } 1240 1241 if (!rt) 1242 rt = net->ipv6.ip6_null_entry; 1243 else if (rt->dst.error) { 1244 rt = net->ipv6.ip6_null_entry; | 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 --- 1228 unchanged lines hidden (view full) --- 1237 continue; 1238 break; 1239 } 1240 1241 if (!rt) 1242 rt = net->ipv6.ip6_null_entry; 1243 else if (rt->dst.error) { 1244 rt = net->ipv6.ip6_null_entry; |
1245 } else if (rt == net->ipv6.ip6_null_entry) { | 1245 goto out; 1246 } 1247 1248 if (rt == net->ipv6.ip6_null_entry) { |
1246 fn = fib6_backtrack(fn, &fl6->saddr); 1247 if (fn) 1248 goto restart; 1249 } 1250 | 1249 fn = fib6_backtrack(fn, &fl6->saddr); 1250 if (fn) 1251 goto restart; 1252 } 1253 |
1254out: |
|
1251 dst_hold(&rt->dst); 1252 1253 read_unlock_bh(&table->tb6_lock); 1254 1255 return rt; 1256}; 1257 1258static struct dst_entry *ip6_route_redirect(struct net *net, --- 1981 unchanged lines hidden --- | 1255 dst_hold(&rt->dst); 1256 1257 read_unlock_bh(&table->tb6_lock); 1258 1259 return rt; 1260}; 1261 1262static struct dst_entry *ip6_route_redirect(struct net *net, --- 1981 unchanged lines hidden --- |