Lines Matching refs:rt6_ex
1444 struct rt6_exception *rt6_ex) in rt6_remove_exception() argument
1449 if (!bucket || !rt6_ex) in rt6_remove_exception()
1452 net = dev_net(rt6_ex->rt6i->dst.dev); in rt6_remove_exception()
1458 from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL); in rt6_remove_exception()
1460 dst_dev_put(&rt6_ex->rt6i->dst); in rt6_remove_exception()
1462 hlist_del_rcu(&rt6_ex->hlist); in rt6_remove_exception()
1463 dst_release(&rt6_ex->rt6i->dst); in rt6_remove_exception()
1464 kfree_rcu(rt6_ex, rcu); in rt6_remove_exception()
1474 struct rt6_exception *rt6_ex, *oldest = NULL; in rt6_exception_remove_oldest() local
1479 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_exception_remove_oldest()
1480 if (!oldest || time_before(rt6_ex->stamp, oldest->stamp)) in rt6_exception_remove_oldest()
1481 oldest = rt6_ex; in rt6_exception_remove_oldest()
1519 struct rt6_exception *rt6_ex; in __rt6_find_exception_spinlock() local
1528 hlist_for_each_entry(rt6_ex, &(*bucket)->chain, hlist) { in __rt6_find_exception_spinlock()
1529 struct rt6_info *rt6 = rt6_ex->rt6i; in __rt6_find_exception_spinlock()
1537 return rt6_ex; in __rt6_find_exception_spinlock()
1552 struct rt6_exception *rt6_ex; in __rt6_find_exception_rcu() local
1563 hlist_for_each_entry_rcu(rt6_ex, &(*bucket)->chain, hlist) { in __rt6_find_exception_rcu()
1564 struct rt6_info *rt6 = rt6_ex->rt6i; in __rt6_find_exception_rcu()
1572 return rt6_ex; in __rt6_find_exception_rcu()
1659 struct rt6_exception *rt6_ex; in rt6_insert_exception() local
1700 rt6_ex = __rt6_find_exception_spinlock(&bucket, &nrt->rt6i_dst.addr, in rt6_insert_exception()
1702 if (rt6_ex) in rt6_insert_exception()
1703 rt6_remove_exception(bucket, rt6_ex); in rt6_insert_exception()
1705 rt6_ex = kzalloc(sizeof(*rt6_ex), GFP_ATOMIC); in rt6_insert_exception()
1706 if (!rt6_ex) { in rt6_insert_exception()
1710 rt6_ex->rt6i = nrt; in rt6_insert_exception()
1711 rt6_ex->stamp = jiffies; in rt6_insert_exception()
1712 hlist_add_head_rcu(&rt6_ex->hlist, &bucket->chain); in rt6_insert_exception()
1738 struct rt6_exception *rt6_ex; in fib6_nh_flush_exceptions() local
1753 hlist_for_each_entry_safe(rt6_ex, tmp, &bucket->chain, hlist) { in fib6_nh_flush_exceptions()
1755 rcu_access_pointer(rt6_ex->rt6i->from) == from) in fib6_nh_flush_exceptions()
1756 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_flush_exceptions()
1792 struct rt6_exception *rt6_ex; in rt6_find_cached_rt() local
1812 rt6_ex = __rt6_find_exception_rcu(&bucket, daddr, src_key); in rt6_find_cached_rt()
1814 if (rt6_ex && !rt6_check_expired(rt6_ex->rt6i)) in rt6_find_cached_rt()
1815 ret = rt6_ex->rt6i; in rt6_find_cached_rt()
1834 struct rt6_exception *rt6_ex; in fib6_nh_remove_exception() local
1853 rt6_ex = __rt6_find_exception_spinlock(&bucket, in fib6_nh_remove_exception()
1856 if (rt6_ex) { in fib6_nh_remove_exception()
1857 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_remove_exception()
1918 struct rt6_exception *rt6_ex; in fib6_nh_update_exception() local
1931 rt6_ex = __rt6_find_exception_rcu(&bucket, &rt->rt6i_dst.addr, src_key); in fib6_nh_update_exception()
1932 if (rt6_ex) in fib6_nh_update_exception()
1933 rt6_ex->stamp = jiffies; in fib6_nh_update_exception()
2015 struct rt6_exception *rt6_ex; in rt6_exceptions_update_pmtu() local
2023 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_exceptions_update_pmtu()
2024 struct rt6_info *entry = rt6_ex->rt6i; in rt6_exceptions_update_pmtu()
2044 struct rt6_exception *rt6_ex; in fib6_nh_exceptions_clean_tohost() local
2055 hlist_for_each_entry_safe(rt6_ex, tmp, in fib6_nh_exceptions_clean_tohost()
2057 struct rt6_info *entry = rt6_ex->rt6i; in fib6_nh_exceptions_clean_tohost()
2063 rt6_remove_exception(bucket, rt6_ex); in fib6_nh_exceptions_clean_tohost()
2074 struct rt6_exception *rt6_ex, in rt6_age_examine_exception() argument
2078 struct rt6_info *rt = rt6_ex->rt6i; in rt6_age_examine_exception()
2089 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2094 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2106 rt6_remove_exception(bucket, rt6_ex); in rt6_age_examine_exception()
2119 struct rt6_exception *rt6_ex; in fib6_nh_age_exceptions() local
2131 hlist_for_each_entry_safe(rt6_ex, tmp, in fib6_nh_age_exceptions()
2133 rt6_age_examine_exception(bucket, rt6_ex, in fib6_nh_age_exceptions()
5835 struct rt6_exception *rt6_ex; in rt6_nh_dump_exceptions() local
5843 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) { in rt6_nh_dump_exceptions()
5860 if (rt6_check_expired(rt6_ex->rt6i)) { in rt6_nh_dump_exceptions()
5866 &rt6_ex->rt6i->dst, NULL, NULL, 0, in rt6_nh_dump_exceptions()