ipvs: no need to update skb route entry for local destination packets.
Subsystems (4)
PATCH 1/1 ipvs: no need to update skb route entry for local destination packets.
In the end of function __ip_vs_get_out_rt/__ip_vs_get_out_rt_v6,the 'local' variable is always zero.
Signed-off-by zhang kai <[email protected]>
--- net/netfilter/ipvs/ip_vs_xmit.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-)
net/netfilter/ipvs/ip_vs_xmit.c +6 -12
@@ -407,12 +407,9 @@ __ip_vs_get_out_rt(struct netns_ipvs *ipvs, int skb_af, struct sk_buff *skb, goto err_put;skb_dst_drop (skb); -if (noref) { -if (!local) -skb_dst_set_noref (skb, &rt->dst); -else -skb_dst_set (skb,dst_clone (&rt->dst)); - }else +if (noref) +skb_dst_set_noref (skb, &rt->dst); +else skb_dst_set (skb, &rt->dst);return local;
@@ -574,12 +571,9 @@ __ip_vs_get_out_rt_v6(struct netns_ipvs *ipvs, int skb_af, struct sk_buff *skb, goto err_put;skb_dst_drop (skb); -if (noref) { -if (!local) -skb_dst_set_noref (skb, &rt->dst); -else -skb_dst_set (skb,dst_clone (&rt->dst)); - }else +if (noref) +skb_dst_set_noref (skb, &rt->dst); +else skb_dst_set (skb, &rt->dst);return local;
Signature · 1 line
2.17.1
Hello,
Quoted 4 lines · zhang kai
In the end of function __ip_vs_get_out_rt/__ip_vs_get_out_rt_v6,the 'local' variable is always zero.
Signed-off-by zhang kai <[email protected]>
Looks good to me, thanks!
Acked-by Julian Anastasov <[email protected]>
Simon, this is for -next kernels...
Quoted 42 lines
--- net/netfilter/ipvs/ip_vs_xmit.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-)net/netfilter/ipvs/ip_vs_xmit.c +6
-12@@ -407,12 +407,9 @@ __ip_vs_get_out_rt(struct netns_ipvs *ipvs, int skb_af, struct sk_buff *skb, goto err_put;skb_dst_drop (skb); -if (noref) { -if (!local) -skb_dst_set_noref (skb, &rt->dst); -else -skb_dst_set (skb,dst_clone (&rt->dst)); - }else +if (noref) +skb_dst_set_noref (skb, &rt->dst); +else skb_dst_set (skb, &rt->dst);return local;@@ -574,12 +571,9 @@ __ip_vs_get_out_rt_v6(struct netns_ipvs *ipvs, int skb_af, struct sk_buff *skb, goto err_put;skb_dst_drop (skb); -if (noref) { -if (!local) -skb_dst_set_noref (skb, &rt->dst); -else -skb_dst_set (skb,dst_clone (&rt->dst)); - }else +if (noref) +skb_dst_set_noref (skb, &rt->dst); +else skb_dst_set (skb, &rt->dst);return local;Signature · 1 line
2.17.1
Regards
Quoted 8 lines · Julian Anastasov
Hello,
Quoted 3 lines · zhang kai
In the end of function __ip_vs_get_out_rt/__ip_vs_get_out_rt_v6,the 'local' variable is always zero.
Quoted 7 lines
Quoted 1 line
Signed-off-by zhang kai <[email protected]>Looks good to me, thanks!
Acked-by Julian Anastasov <[email protected]>Simon, this is for -next kernels...
Thanks, applied to ipvs-next.