linux/net/ipv4
Wei Wang 95c47f9cf5 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>
2017-06-17 22:53:59 -04:00
..
netfilter networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
af_inet.c net: ping: do not abuse udp_poll() 2017-06-04 22:56:55 -04:00
ah4.c ipsec: check return value of skb_to_sgvec always 2017-06-04 23:01:47 -04:00
arp.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
cipso_ipv4.c
datagram.c
devinet.c Ipvlan should return an error when an address is already in use. 2017-06-09 12:26:07 -04:00
esp4_offload.c
esp4.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
fib_frontend.c net: lwtunnel: Add extack to encap attr validation 2017-05-30 11:55:31 -04:00
fib_lookup.h net: add extack arg to lwtunnel build state 2017-05-30 11:55:32 -04:00
fib_notifier.c
fib_rules.c
fib_semantics.c ipv4: call dst_dev_put() properly 2017-06-17 22:53:59 -04:00
fib_trie.c net: add extack arg to lwtunnel build state 2017-05-30 11:55:32 -04:00
fou.c fou: make local function static 2017-05-21 13:42:36 -04:00
gre_demux.c
gre_offload.c
icmp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-06-15 11:59:32 -04:00
igmp.c networking: make skb_put & friends return void pointers 2017-06-16 11:48:39 -04:00
inet_connection_sock.c dccp: consistently use dccp_write_space() 2017-06-04 19:58:35 -04:00
inet_diag.c
inet_fragment.c
inet_hashtables.c treewide: use kv[mz]alloc* rather than opencoded variants 2017-05-08 17:15:13 -07:00
inet_timewait_sock.c
inetpeer.c
ip_forward.c
ip_fragment.c
ip_gre.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
ip_input.c
ip_options.c
ip_output.c
ip_sockglue.c ipv4: get rid of ip_ra_lock 2017-04-30 22:44:04 -04:00
ip_tunnel_core.c net: add extack arg to lwtunnel build state 2017-05-30 11:55:32 -04:00
ip_tunnel.c net: Fix inconsistent teardown and release of private netdev state. 2017-06-07 15:53:24 -04:00
ip_vti.c vti: check nla_put_* return value 2017-05-08 15:10:31 -04:00
ipcomp.c
ipconfig.c networking: convert many more places to skb_put_zero() 2017-06-16 11:48:35 -04:00
ipip.c
ipmr.c networking: make skb_pull & friends return void pointers 2017-06-16 11:48:39 -04:00
Kconfig
Makefile tcp: ULP infrastructure 2017-06-15 12:12:40 -04:00
netfilter.c
ping.c
proc.c tcp: add TCPMemoryPressuresChrono counter 2017-06-08 11:26:19 -04:00
protocol.c
raw_diag.c
raw.c ipv4, ipv6: ensure raw socket message is big enough to hold an IP header 2017-05-04 11:02:46 -04:00
route.c ipv4: call dst_dev_put() properly 2017-06-17 22:53:59 -04:00
syncookies.c tcp: Namespaceify sysctl_tcp_timestamps 2017-06-08 10:53:29 -04:00
sysctl_net_ipv4.c tcp: ULP infrastructure 2017-06-15 12:12:40 -04:00
tcp_bbr.c tcp: switch TCP TS option (RFC 7323) to 1ms clock 2017-05-17 16:06:01 -04:00
tcp_bic.c tcp: bic, cubic: use tcp_jiffies32 instead of tcp_time_stamp 2017-05-17 16:06:01 -04:00
tcp_cdg.c
tcp_cong.c tcp: disallow cwnd undo when switching congestion control 2017-06-02 14:18:13 -04:00
tcp_cubic.c tcp: bic, cubic: use tcp_jiffies32 instead of tcp_time_stamp 2017-05-17 16:06:01 -04:00
tcp_dctcp.c
tcp_diag.c
tcp_fastopen.c net/tcp_fastopen: Add snmp counter for blackhole detection 2017-04-24 14:27:17 -04:00
tcp_highspeed.c
tcp_htcp.c tcp: replace misc tcp_time_stamp to tcp_jiffies32 2017-05-17 16:06:01 -04:00
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: Namespaceify sysctl_tcp_timestamps 2017-06-08 10:53:29 -04:00
tcp_ipv4.c tcp: ULP infrastructure 2017-06-15 12:12:40 -04:00
tcp_lp.c tcp: switch TCP TS option (RFC 7323) to 1ms clock 2017-05-17 16:06:01 -04:00
tcp_metrics.c tcp: use tcp_jiffies32 to feed tp->snd_cwnd_stamp 2017-05-17 16:06:01 -04:00
tcp_minisocks.c tcp: add a struct net parameter to tcp_parse_options() 2017-06-08 10:53:28 -04:00
tcp_nv.c tcpnv: do not export local function 2017-05-21 13:42:36 -04:00
tcp_offload.c
tcp_output.c tcp: Namespaceify sysctl_tcp_timestamps 2017-06-08 10:53:29 -04:00
tcp_probe.c
tcp_rate.c tcp: export do_tcp_sendpages and tcp_rate_check_app_limited functions 2017-06-15 12:12:40 -04:00
tcp_recovery.c tcp: switch TCP TS option (RFC 7323) to 1ms clock 2017-05-17 16:06:01 -04:00
tcp_scalable.c
tcp_timer.c tcp: fix TCP_SYNCNT flakes 2017-05-24 16:29:57 -04:00
tcp_ulp.c tcp: ULP infrastructure 2017-06-15 12:12:40 -04:00
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c tcp_westwood: use tcp_jiffies32 instead of tcp_time_stamp 2017-05-17 16:06:01 -04:00
tcp_yeah.c
tcp.c tcp: export do_tcp_sendpages and tcp_rate_check_app_limited functions 2017-06-15 12:12:40 -04:00
tunnel4.c
udp_diag.c
udp_impl.h udp: make *udp*_queue_rcv_skb() functions static 2017-05-18 10:23:33 -04:00
udp_offload.c
udp_tunnel.c
udp.c udp: call dst_hold_safe() in udp_sk_rx_set_dst() 2017-06-17 22:53:59 -04:00
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c networking: make skb_pull & friends return void pointers 2017-06-16 11:48:39 -04:00
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c
xfrm4_policy.c
xfrm4_protocol.c
xfrm4_state.c
xfrm4_tunnel.c