Lines Matching defs:rt6_ex

1440 /* Remove rt6_ex from hash table and free the memory
1444 struct rt6_exception *rt6_ex)
1449 if (!bucket || !rt6_ex)
1452 net = dev_net(rt6_ex->rt6i->dst.dev);
1458 from = xchg((__force struct fib6_info **)&rt6_ex->rt6i->from, NULL);
1460 dst_dev_put(&rt6_ex->rt6i->dst);
1462 hlist_del_rcu(&rt6_ex->hlist);
1463 dst_release(&rt6_ex->rt6i->dst);
1464 kfree_rcu(rt6_ex, rcu);
1469 /* Remove oldest rt6_ex in bucket and free the memory
1474 struct rt6_exception *rt6_ex, *oldest = NULL;
1479 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
1480 if (!oldest || time_before(rt6_ex->stamp, oldest->stamp))
1481 oldest = rt6_ex;
1519 struct rt6_exception *rt6_ex;
1528 hlist_for_each_entry(rt6_ex, &(*bucket)->chain, hlist) {
1529 struct rt6_info *rt6 = rt6_ex->rt6i;
1537 return rt6_ex;
1552 struct rt6_exception *rt6_ex;
1563 hlist_for_each_entry_rcu(rt6_ex, &(*bucket)->chain, hlist) {
1564 struct rt6_info *rt6 = rt6_ex->rt6i;
1572 return rt6_ex;
1659 struct rt6_exception *rt6_ex;
1700 rt6_ex = __rt6_find_exception_spinlock(&bucket, &nrt->rt6i_dst.addr,
1702 if (rt6_ex)
1703 rt6_remove_exception(bucket, rt6_ex);
1705 rt6_ex = kzalloc(sizeof(*rt6_ex), GFP_ATOMIC);
1706 if (!rt6_ex) {
1710 rt6_ex->rt6i = nrt;
1711 rt6_ex->stamp = jiffies;
1712 hlist_add_head_rcu(&rt6_ex->hlist, &bucket->chain);
1738 struct rt6_exception *rt6_ex;
1753 hlist_for_each_entry_safe(rt6_ex, tmp, &bucket->chain, hlist) {
1755 rcu_access_pointer(rt6_ex->rt6i->from) == from)
1756 rt6_remove_exception(bucket, rt6_ex);
1792 struct rt6_exception *rt6_ex;
1812 rt6_ex = __rt6_find_exception_rcu(&bucket, daddr, src_key);
1814 if (rt6_ex && !rt6_check_expired(rt6_ex->rt6i))
1815 ret = rt6_ex->rt6i;
1834 struct rt6_exception *rt6_ex;
1853 rt6_ex = __rt6_find_exception_spinlock(&bucket,
1856 if (rt6_ex) {
1857 rt6_remove_exception(bucket, rt6_ex);
1910 /* Find rt6_ex which contains the passed in rt cache and
1918 struct rt6_exception *rt6_ex;
1931 rt6_ex = __rt6_find_exception_rcu(&bucket, &rt->rt6i_dst.addr, src_key);
1932 if (rt6_ex)
1933 rt6_ex->stamp = jiffies;
2015 struct rt6_exception *rt6_ex;
2023 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
2024 struct rt6_info *entry = rt6_ex->rt6i;
2044 struct rt6_exception *rt6_ex;
2055 hlist_for_each_entry_safe(rt6_ex, tmp,
2057 struct rt6_info *entry = rt6_ex->rt6i;
2063 rt6_remove_exception(bucket, rt6_ex);
2074 struct rt6_exception *rt6_ex,
2078 struct rt6_info *rt = rt6_ex->rt6i;
2089 rt6_remove_exception(bucket, rt6_ex);
2094 rt6_remove_exception(bucket, rt6_ex);
2106 rt6_remove_exception(bucket, rt6_ex);
2119 struct rt6_exception *rt6_ex;
2131 hlist_for_each_entry_safe(rt6_ex, tmp,
2133 rt6_age_examine_exception(bucket, rt6_ex,
2873 /* update rt6_ex->stamp for cache */
5828 struct rt6_exception *rt6_ex;
5836 hlist_for_each_entry(rt6_ex, &bucket->chain, hlist) {
5853 if (rt6_check_expired(rt6_ex->rt6i)) {
5859 &rt6_ex->rt6i->dst, NULL, NULL, 0,