Lines Matching defs:rt6_ex

1441 /* Remove rt6_ex from hash table and free the memory
1445 struct rt6_exception *rt6_ex)
1450 if (!bucket || !rt6_ex)
1453 net = dev_net(rt6_ex->rt6i->dst.dev);
1459 from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL);
1461 dst_dev_put(&rt6_ex->rt6i->dst);
1463 hlist_del_rcu(&rt6_ex->hlist);
1464 dst_release(&rt6_ex->rt6i->dst);
1465 kfree_rcu(rt6_ex, rcu);
1470 /* Remove oldest rt6_ex in bucket and free the memory
1475 struct rt6_exception *rt6_ex, *oldest = NULL;
1480 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
1481 if (!oldest || time_before(rt6_ex->stamp, oldest->stamp))
1482 oldest = rt6_ex;
1520 struct rt6_exception *rt6_ex;
1529 hlist_for_each_entry(rt6_ex, &(*bucket)->chain, hlist) {
1530 struct rt6_info *rt6 = rt6_ex->rt6i;
1538 return rt6_ex;
1553 struct rt6_exception *rt6_ex;
1564 hlist_for_each_entry_rcu(rt6_ex, &(*bucket)->chain, hlist) {
1565 struct rt6_info *rt6 = rt6_ex->rt6i;
1573 return rt6_ex;
1660 struct rt6_exception *rt6_ex;
1701 rt6_ex = __rt6_find_exception_spinlock(&bucket, &nrt->rt6i_dst.addr,
1703 if (rt6_ex)
1704 rt6_remove_exception(bucket, rt6_ex);
1706 rt6_ex = kzalloc(sizeof(*rt6_ex), GFP_ATOMIC);
1707 if (!rt6_ex) {
1711 rt6_ex->rt6i = nrt;
1712 rt6_ex->stamp = jiffies;
1713 hlist_add_head_rcu(&rt6_ex->hlist, &bucket->chain);
1739 struct rt6_exception *rt6_ex;
1754 hlist_for_each_entry_safe(rt6_ex, tmp, &bucket->chain, hlist) {
1756 rcu_access_pointer(rt6_ex->rt6i->from) == from)
1757 rt6_remove_exception(bucket, rt6_ex);
1793 struct rt6_exception *rt6_ex;
1813 rt6_ex = __rt6_find_exception_rcu(&bucket, daddr, src_key);
1815 if (rt6_ex && !rt6_check_expired(rt6_ex->rt6i))
1816 ret = rt6_ex->rt6i;
1835 struct rt6_exception *rt6_ex;
1854 rt6_ex = __rt6_find_exception_spinlock(&bucket,
1857 if (rt6_ex) {
1858 rt6_remove_exception(bucket, rt6_ex);
1911 /* Find rt6_ex which contains the passed in rt cache and
1919 struct rt6_exception *rt6_ex;
1932 rt6_ex = __rt6_find_exception_rcu(&bucket, &rt->rt6i_dst.addr, src_key);
1933 if (rt6_ex)
1934 rt6_ex->stamp = jiffies;
2016 struct rt6_exception *rt6_ex;
2024 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
2025 struct rt6_info *entry = rt6_ex->rt6i;
2045 struct rt6_exception *rt6_ex;
2056 hlist_for_each_entry_safe(rt6_ex, tmp,
2058 struct rt6_info *entry = rt6_ex->rt6i;
2064 rt6_remove_exception(bucket, rt6_ex);
2075 struct rt6_exception *rt6_ex,
2079 struct rt6_info *rt = rt6_ex->rt6i;
2090 rt6_remove_exception(bucket, rt6_ex);
2095 rt6_remove_exception(bucket, rt6_ex);
2110 rt6_remove_exception(bucket, rt6_ex);
2123 struct rt6_exception *rt6_ex;
2135 hlist_for_each_entry_safe(rt6_ex, tmp,
2137 rt6_age_examine_exception(bucket, rt6_ex,
2752 /* update rt6_ex->stamp for cache */
5729 struct rt6_exception *rt6_ex;
5737 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
5754 if (rt6_check_expired(rt6_ex->rt6i)) {
5760 &rt6_ex->rt6i->dst, NULL, NULL, 0,