提交 fe3edf45 编写于 作者: D David S. Miller

ipv4: Remove all RTCF_DIRECTSRC handliing.

The last and final kernel user, ICMP address replies,
has been removed.
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 838942a5
...@@ -1391,9 +1391,6 @@ static int __mkroute_input(struct sk_buff *skb, ...@@ -1391,9 +1391,6 @@ static int __mkroute_input(struct sk_buff *skb,
goto cleanup; goto cleanup;
} }
if (err)
flags |= RTCF_DIRECTSRC;
if (out_dev == in_dev && err && if (out_dev == in_dev && err &&
(IN_DEV_SHARED_MEDIA(out_dev) || (IN_DEV_SHARED_MEDIA(out_dev) ||
inet_addr_onlink(out_dev, saddr, FIB_RES_GW(*res)))) inet_addr_onlink(out_dev, saddr, FIB_RES_GW(*res))))
...@@ -1416,7 +1413,7 @@ static int __mkroute_input(struct sk_buff *skb, ...@@ -1416,7 +1413,7 @@ static int __mkroute_input(struct sk_buff *skb,
do_cache = false; do_cache = false;
if (res->fi) { if (res->fi) {
if (!(flags & RTCF_DIRECTSRC) && !itag) { if (!itag) {
rth = FIB_RES_NH(*res).nh_rth_input; rth = FIB_RES_NH(*res).nh_rth_input;
if (rt_cache_valid(rth)) { if (rt_cache_valid(rth)) {
dst_hold(&rth->dst); dst_hold(&rth->dst);
...@@ -1558,8 +1555,6 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr, ...@@ -1558,8 +1555,6 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
dev, in_dev, &itag); dev, in_dev, &itag);
if (err < 0) if (err < 0)
goto martian_source_keep_err; goto martian_source_keep_err;
if (err)
flags |= RTCF_DIRECTSRC;
goto local_input; goto local_input;
} }
...@@ -1580,8 +1575,6 @@ out: return err; ...@@ -1580,8 +1575,6 @@ out: return err;
in_dev, &itag); in_dev, &itag);
if (err < 0) if (err < 0)
goto martian_source_keep_err; goto martian_source_keep_err;
if (err)
flags |= RTCF_DIRECTSRC;
} }
flags |= RTCF_BROADCAST; flags |= RTCF_BROADCAST;
res.type = RTN_BROADCAST; res.type = RTN_BROADCAST;
...@@ -1590,7 +1583,7 @@ out: return err; ...@@ -1590,7 +1583,7 @@ out: return err;
local_input: local_input:
do_cache = false; do_cache = false;
if (res.fi) { if (res.fi) {
if (!(flags & RTCF_DIRECTSRC) && !itag) { if (!itag) {
rth = FIB_RES_NH(res).nh_rth_input; rth = FIB_RES_NH(res).nh_rth_input;
if (rt_cache_valid(rth)) { if (rt_cache_valid(rth)) {
dst_hold(&rth->dst); dst_hold(&rth->dst);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册