diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2012-03-06 21:20:26 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-08 00:30:24 -0800 |
commit | 5faa5df1fa2024bd750089ff21dcc4191798263d (patch) | |
tree | a47a76a4bd9a3b61dcc2d2a34149e6ffecdf8cd8 /net/ipv4/route.c | |
parent | dcf353b17007841f91e1735e33790508c84c9ad0 (diff) | |
download | op-kernel-dev-5faa5df1fa2024bd750089ff21dcc4191798263d.zip op-kernel-dev-5faa5df1fa2024bd750089ff21dcc4191798263d.tar.gz |
inetpeer: Invalidate the inetpeer tree along with the routing cache
We initialize the routing metrics with the values cached on the
inetpeer in rt_init_metrics(). So if we have the metrics cached on the
inetpeer, we ignore the user configured fib_metrics.
To fix this issue, we replace the old tree with a fresh initialized
inet_peer_base. The old tree is removed later with a delayed work queue.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/route.c')
-rw-r--r-- | net/ipv4/route.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index bcacf54..23ce0c1 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -938,6 +938,7 @@ static void rt_cache_invalidate(struct net *net) get_random_bytes(&shuffle, sizeof(shuffle)); atomic_add(shuffle + 1U, &net->ipv4.rt_genid); redirect_genid++; + inetpeer_invalidate_tree(AF_INET); } /* |