ipv4: fix to not remove local route on link down
authorJulian Anastasov <ja@ssi.bg>
Fri, 30 Oct 2015 08:23:33 +0000 (10:23 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 1 Nov 2015 21:57:39 +0000 (16:57 -0500)
commit4f823defdd5b106a5e89745ee8b163c71855de1e
tree0e5c931525020e31361e2af3426f9f2d78953f00
parent5dbebbb44a6ad94aab2cd1a46f7676f255403f64
ipv4: fix to not remove local route on link down

When fib_netdev_event calls fib_disable_ip on NETDEV_DOWN event
we should not delete the local routes if the local address
is still present. The confusion comes from the fact that both
fib_netdev_event and fib_inetaddr_event use the NETDEV_DOWN
constant. Fix it by returning back the variable 'force'.

Steps to reproduce:
modprobe dummy
ifconfig dummy0 192.168.168.1 up
ifconfig dummy0 down
ip route list table local | grep dummy | grep host
local 192.168.168.1 dev dummy0  proto kernel  scope host  src 192.168.168.1

Fixes: 8a3d03166f19 ("net: track link-status of ipv4 nexthops")
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/ip_fib.h
net/ipv4/fib_frontend.c
net/ipv4/fib_semantics.c