mirror of https://gitee.com/openkylin/linux.git
[IPV6]: Don't update ADVMSS on routes where the MTU is not also updated
The ADVMSS value was incorrectly updated for ALL routes when the MTU is updated because it's outside the effect of the if statement's condition. Signed-off-by: Simon Arlott <simon@fire.lp0.eu> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
342ff7b24f
commit
566cfd8f0e
|
@ -1983,9 +1983,10 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void *p_arg)
|
||||||
!dst_metric_locked(&rt->u.dst, RTAX_MTU) &&
|
!dst_metric_locked(&rt->u.dst, RTAX_MTU) &&
|
||||||
(dst_mtu(&rt->u.dst) > arg->mtu ||
|
(dst_mtu(&rt->u.dst) > arg->mtu ||
|
||||||
(dst_mtu(&rt->u.dst) < arg->mtu &&
|
(dst_mtu(&rt->u.dst) < arg->mtu &&
|
||||||
dst_mtu(&rt->u.dst) == idev->cnf.mtu6)))
|
dst_mtu(&rt->u.dst) == idev->cnf.mtu6))) {
|
||||||
rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
|
rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
|
||||||
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
|
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue