Commit 3e12939a2a67fbb4cbd962c3b9bc398c73319766
1 parent
1d861aa4b3
Exists in
smarc-l5.0.0_1.0.0-ga
and in
5 other branches
inet: Kill FLOWI_FLAG_PRECOW_METRICS.
No longer needed. TCP writes metrics, but now in it's own special cache that does not dirty the route metrics. Therefore there is no longer any reason to pre-cow metrics in this way. Signed-off-by: David S. Miller <davem@davemloft.net>
Showing 6 changed files with 6 additions and 18 deletions Side-by-side Diff
include/net/flow.h
... | ... | @@ -20,9 +20,8 @@ |
20 | 20 | __u8 flowic_proto; |
21 | 21 | __u8 flowic_flags; |
22 | 22 | #define FLOWI_FLAG_ANYSRC 0x01 |
23 | -#define FLOWI_FLAG_PRECOW_METRICS 0x02 | |
24 | -#define FLOWI_FLAG_CAN_SLEEP 0x04 | |
25 | -#define FLOWI_FLAG_RT_NOCACHE 0x08 | |
23 | +#define FLOWI_FLAG_CAN_SLEEP 0x02 | |
24 | +#define FLOWI_FLAG_RT_NOCACHE 0x04 | |
26 | 25 | __u32 flowic_secid; |
27 | 26 | }; |
28 | 27 |
include/net/inet_sock.h
include/net/route.h
net/ipv4/inet_connection_sock.c
... | ... | @@ -375,7 +375,7 @@ |
375 | 375 | const struct inet_request_sock *ireq = inet_rsk(req); |
376 | 376 | struct ip_options_rcu *opt = inet_rsk(req)->opt; |
377 | 377 | struct net *net = sock_net(sk); |
378 | - int flags = inet_sk_flowi_flags(sk) & ~FLOWI_FLAG_PRECOW_METRICS; | |
378 | + int flags = inet_sk_flowi_flags(sk); | |
379 | 379 | |
380 | 380 | if (nocache) |
381 | 381 | flags |= FLOWI_FLAG_RT_NOCACHE; |
net/ipv4/route.c
... | ... | @@ -1658,7 +1658,7 @@ |
1658 | 1658 | struct rtable *rt; |
1659 | 1659 | |
1660 | 1660 | flowi4_init_output(&fl4, oif, mark, RT_TOS(iph->tos), RT_SCOPE_UNIVERSE, |
1661 | - protocol, flow_flags | FLOWI_FLAG_PRECOW_METRICS, | |
1661 | + protocol, flow_flags, | |
1662 | 1662 | iph->daddr, iph->saddr, 0, 0); |
1663 | 1663 | rt = __ip_route_output_key(net, &fl4); |
1664 | 1664 | if (!IS_ERR(rt)) { |
1665 | 1665 | |
1666 | 1666 | |
... | ... | @@ -1836,18 +1836,11 @@ |
1836 | 1836 | { |
1837 | 1837 | struct inet_peer_base *base; |
1838 | 1838 | struct inet_peer *peer; |
1839 | - int create = 0; | |
1840 | 1839 | |
1841 | - /* If a peer entry exists for this destination, we must hook | |
1842 | - * it up in order to get at cached metrics. | |
1843 | - */ | |
1844 | - if (fl4 && (fl4->flowi4_flags & FLOWI_FLAG_PRECOW_METRICS)) | |
1845 | - create = 1; | |
1846 | - | |
1847 | 1840 | base = inetpeer_base_ptr(rt->_peer); |
1848 | 1841 | BUG_ON(!base); |
1849 | 1842 | |
1850 | - peer = inet_getpeer_v4(base, rt->rt_dst, create); | |
1843 | + peer = inet_getpeer_v4(base, rt->rt_dst, 0); | |
1851 | 1844 | if (peer) { |
1852 | 1845 | __rt_set_peer(rt, peer); |
1853 | 1846 | rt->rt_peer_genid = rt_peer_genid(); |
net/ipv6/route.c
... | ... | @@ -1093,7 +1093,7 @@ |
1093 | 1093 | memset(&fl6, 0, sizeof(fl6)); |
1094 | 1094 | fl6.flowi6_oif = oif; |
1095 | 1095 | fl6.flowi6_mark = mark; |
1096 | - fl6.flowi6_flags = FLOWI_FLAG_PRECOW_METRICS; | |
1096 | + fl6.flowi6_flags = 0; | |
1097 | 1097 | fl6.daddr = iph->daddr; |
1098 | 1098 | fl6.saddr = iph->saddr; |
1099 | 1099 | fl6.flowlabel = (*(__be32 *) iph) & IPV6_FLOWINFO_MASK; |