|
@@ -947,6 +947,10 @@ static void __ip_rt_update_pmtu(struct rtable *rt, struct flowi4 *fl4, u32 mtu)
|
|
if (mtu < ip_rt_min_pmtu)
|
|
if (mtu < ip_rt_min_pmtu)
|
|
mtu = ip_rt_min_pmtu;
|
|
mtu = ip_rt_min_pmtu;
|
|
|
|
|
|
|
|
+ if (rt->rt_pmtu == mtu &&
|
|
|
|
+ time_before(jiffies, dst->expires - ip_rt_mtu_expires / 2))
|
|
|
|
+ return;
|
|
|
|
+
|
|
rcu_read_lock();
|
|
rcu_read_lock();
|
|
if (fib_lookup(dev_net(dst->dev), fl4, &res) == 0) {
|
|
if (fib_lookup(dev_net(dst->dev), fl4, &res) == 0) {
|
|
struct fib_nh *nh = &FIB_RES_NH(res);
|
|
struct fib_nh *nh = &FIB_RES_NH(res);
|