]> git.baikalelectronics.ru Git - kernel.git/commit
ipv4: call dst_dev_put() properly
authorWei Wang <weiwan@google.com>
Sat, 17 Jun 2017 17:42:30 +0000 (10:42 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sun, 18 Jun 2017 02:53:59 +0000 (22:53 -0400)
commit369a48a6156b4bc46496519d7c28688465cc81fa
treed8a94c1d8bb6a78c398e71bfecb70458572600ff
parent92738e373308d0cc89eefbf4a0e56e584c932d7c
ipv4: call dst_dev_put() properly

As the intend of this patch series is to completely remove dst gc,
we need to call dst_dev_put() to release the reference to dst->dev
when removing routes from fib because we won't keep the gc list anymore
and will lose the dst pointer right after removing the routes.
Without the gc list, there is no way to find all the dst's that have
dst->dev pointing to the going-down dev.
Hence, we are doing dst_dev_put() immediately before we lose the last
reference of the dst from the routing code. The next dst_check() will
trigger a route re-lookup to find another route (if there is any).

Signed-off-by: Wei Wang <weiwan@google.com>
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/fib_semantics.c
net/ipv4/route.c