Commit 0e8411e4 authored by Hangbin Liu's avatar Hangbin Liu Committed by David S. Miller

ipv4: reset fnhe_mtu_locked after cache route flushed

After route cache is flushed via ipv4_sysctl_rtcache_flush(), we forget
to reset fnhe_mtu_locked in rt_bind_exception(). When pmtu is updated
in __ip_rt_update_pmtu(), it will return directly since the pmtu is
still locked. e.g.

+ ip netns exec client ping 10.10.1.1 -c 1 -s 1400 -M do
PING 10.10.1.1 (10.10.1.1) 1400(1428) bytes of data.
>From 10.10.0.254 icmp_seq=1 Frag needed and DF set (mtu = 0)
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 55be9f25
...@@ -1375,6 +1375,7 @@ static bool rt_bind_exception(struct rtable *rt, struct fib_nh_exception *fnhe, ...@@ -1375,6 +1375,7 @@ static bool rt_bind_exception(struct rtable *rt, struct fib_nh_exception *fnhe,
fnhe->fnhe_gw = 0; fnhe->fnhe_gw = 0;
fnhe->fnhe_pmtu = 0; fnhe->fnhe_pmtu = 0;
fnhe->fnhe_expires = 0; fnhe->fnhe_expires = 0;
fnhe->fnhe_mtu_locked = false;
fnhe_flush_routes(fnhe); fnhe_flush_routes(fnhe);
orig = NULL; orig = NULL;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment