summaryrefslogtreecommitdiffstats
path: root/lib/rbtree.c
diff options
context:
space:
mode:
authorSteffen Klassert <steffen.klassert@secunet.com>2013-01-21 02:59:11 +0100
committerDavid S. Miller <davem@davemloft.net>2013-01-21 20:17:05 +0100
commit9cb3a50c5f63ed745702972f66eaee8767659acd (patch)
tree2dc26f0aef8f48c21e91496492eaddae3d133c7f /lib/rbtree.c
parentnet: splice: fix __splice_segment() (diff)
downloadlinux-9cb3a50c5f63ed745702972f66eaee8767659acd.tar.xz
linux-9cb3a50c5f63ed745702972f66eaee8767659acd.zip
ipv4: Invalidate the socket cached route on pmtu events if possible
The route lookup in ipv4_sk_update_pmtu() might return a route different from the route we cached at the socket. This is because standart routes are per cpu, so each cpu has it's own struct rtable. This means that we do not invalidate the socket cached route if the NET_RX_SOFTIRQ is not served by the same cpu that the sending socket uses. As a result, the cached route reused until we disconnect. With this patch we invalidate the socket cached route if possible. If the socket is owened by the user, we can't update the cached route directly. A followup patch will implement socket release callback functions for datagram sockets to handle this case. Reported-by: Yurij M. Plotnikov <Yurij.Plotnikov@oktetlabs.ru> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'lib/rbtree.c')
0 files changed, 0 insertions, 0 deletions