Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df67e6c9 authored by David S. Miller's avatar David S. Miller
Browse files

ipv4: Remove unnecessary code from rt_check_expire().



IPv4 routing cache entries no longer use dst->expires, because the
metrics, PMTU, and redirect information are stored in the inetpeer
cache.

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 29cb99de
Loading
Loading
Loading
Loading
+11 −23
Original line number Diff line number Diff line
@@ -870,34 +870,22 @@ static void rt_check_expire(void)
		while ((rth = rcu_dereference_protected(*rthp,
					lockdep_is_held(rt_hash_lock_addr(i)))) != NULL) {
			prefetch(rth->dst.rt_next);
			if (rt_is_expired(rth)) {
			if (rt_is_expired(rth) ||
			    rt_may_expire(rth, tmo, ip_rt_gc_timeout)) {
				*rthp = rth->dst.rt_next;
				rt_free(rth);
				continue;
			}
			if (rth->dst.expires) {
				/* Entry is expired even if it is in use */
				if (time_before_eq(jiffies, rth->dst.expires)) {
nofree:

			/* We only count entries on a chain with equal
			 * hash inputs once so that entries for
			 * different QOS levels, and other non-hash
			 * input attributes don't unfairly skew the
			 * length computation
			 */
			tmo >>= 1;
			rthp = &rth->dst.rt_next;
					/*
					 * We only count entries on
					 * a chain with equal hash inputs once
					 * so that entries for different QOS
					 * levels, and other non-hash input
					 * attributes don't unfairly skew
					 * the length computation
					 */
			length += has_noalias(rt_hash_table[i].chain, rth);
					continue;
				}
			} else if (!rt_may_expire(rth, tmo, ip_rt_gc_timeout))
				goto nofree;

			/* Cleanup aged off entries. */
			*rthp = rth->dst.rt_next;
			rt_free(rth);
		}
		spin_unlock_bh(rt_hash_lock_addr(i));
		sum += length;