Lines Matching refs:rt6_ex
1505 struct rt6_exception *rt6_ex) in rt6_remove_exception() argument
1509 if (!bucket || !rt6_ex) in rt6_remove_exception()
1512 net = dev_net(rt6_ex->rt6i->dst.dev); in rt6_remove_exception()
1518 dst_dev_put(&rt6_ex->rt6i->dst); in rt6_remove_exception()
1520 hlist_del_rcu(&rt6_ex->hlist); in rt6_remove_exception()
1521 dst_release(&rt6_ex->rt6i->dst); in rt6_remove_exception()
1522 kfree_rcu(rt6_ex, rcu); in rt6_remove_exception()
1532 struct rt6_exception *rt6_ex, *oldest = NULL; in rt6_exception_remove_oldest() local
1537 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_exception_remove_oldest()
1538 if (!oldest || time_before(rt6_ex->stamp, oldest->stamp)) in rt6_exception_remove_oldest()
1539 oldest = rt6_ex; in rt6_exception_remove_oldest()
1577 struct rt6_exception *rt6_ex; in __rt6_find_exception_spinlock() local
1586 hlist_for_each_entry(rt6_ex, &(*bucket)->chain, hlist) { in __rt6_find_exception_spinlock()
1587 struct rt6_info *rt6 = rt6_ex->rt6i; in __rt6_find_exception_spinlock()
1595 return rt6_ex; in __rt6_find_exception_spinlock()
1610 struct rt6_exception *rt6_ex; in __rt6_find_exception_rcu() local
1621 hlist_for_each_entry_rcu(rt6_ex, &(*bucket)->chain, hlist) { in __rt6_find_exception_rcu()
1622 struct rt6_info *rt6 = rt6_ex->rt6i; in __rt6_find_exception_rcu()
1630 return rt6_ex; in __rt6_find_exception_rcu()
1717 struct rt6_exception *rt6_ex; in rt6_insert_exception() local
1758 rt6_ex = __rt6_find_exception_spinlock(&bucket, &nrt->rt6i_dst.addr, in rt6_insert_exception()
1760 if (rt6_ex) in rt6_insert_exception()
1761 rt6_remove_exception(bucket, rt6_ex); in rt6_insert_exception()
1763 rt6_ex = kzalloc_obj(*rt6_ex, GFP_ATOMIC); in rt6_insert_exception()
1764 if (!rt6_ex) { in rt6_insert_exception()
1768 rt6_ex->rt6i = nrt; in rt6_insert_exception()
1769 rt6_ex->stamp = jiffies; in rt6_insert_exception()
1770 hlist_add_head_rcu(&rt6_ex->hlist, &bucket->chain); in rt6_insert_exception()
1797 struct rt6_exception *rt6_ex; in fib6_nh_flush_exceptions() local
1812 hlist_for_each_entry_safe(rt6_ex, tmp, &bucket->chain, hlist) { in fib6_nh_flush_exceptions()
1814 rcu_access_pointer(rt6_ex->rt6i->from) == from) in fib6_nh_flush_exceptions()
1815 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_flush_exceptions()
1853 struct rt6_exception *rt6_ex; in rt6_find_cached_rt() local
1873 rt6_ex = __rt6_find_exception_rcu(&bucket, daddr, src_key); in rt6_find_cached_rt()
1875 if (rt6_ex && !rt6_check_expired(rt6_ex->rt6i)) in rt6_find_cached_rt()
1876 ret = rt6_ex->rt6i; in rt6_find_cached_rt()
1895 struct rt6_exception *rt6_ex; in fib6_nh_remove_exception() local
1914 rt6_ex = __rt6_find_exception_spinlock(&bucket, in fib6_nh_remove_exception()
1917 if (rt6_ex) { in fib6_nh_remove_exception()
1918 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_remove_exception()
1979 struct rt6_exception *rt6_ex; in fib6_nh_update_exception() local
1992 rt6_ex = __rt6_find_exception_rcu(&bucket, &rt->rt6i_dst.addr, src_key); in fib6_nh_update_exception()
1993 if (rt6_ex) in fib6_nh_update_exception()
1994 rt6_ex->stamp = jiffies; in fib6_nh_update_exception()
2078 struct rt6_exception *rt6_ex; in rt6_exceptions_update_pmtu() local
2086 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_exceptions_update_pmtu()
2087 struct rt6_info *entry = rt6_ex->rt6i; in rt6_exceptions_update_pmtu()
2107 struct rt6_exception *rt6_ex; in fib6_nh_exceptions_clean_tohost() local
2118 hlist_for_each_entry_safe(rt6_ex, tmp, in fib6_nh_exceptions_clean_tohost()
2120 struct rt6_info *entry = rt6_ex->rt6i; in fib6_nh_exceptions_clean_tohost()
2126 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_exceptions_clean_tohost()
2137 struct rt6_exception *rt6_ex, in rt6_age_examine_exception() argument
2141 struct rt6_info *rt = rt6_ex->rt6i; in rt6_age_examine_exception()
2153 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2158 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2170 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2183 struct rt6_exception *rt6_ex; in fib6_nh_age_exceptions() local
2195 hlist_for_each_entry_safe(rt6_ex, tmp, in fib6_nh_age_exceptions()
2197 rt6_age_examine_exception(bucket, rt6_ex, in fib6_nh_age_exceptions()
6003 struct rt6_exception *rt6_ex; in rt6_nh_dump_exceptions() local
6011 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_nh_dump_exceptions()
6028 if (rt6_check_expired(rt6_ex->rt6i)) { in rt6_nh_dump_exceptions()
6034 &rt6_ex->rt6i->dst, NULL, NULL, 0, in rt6_nh_dump_exceptions()