|
@@ -469,7 +469,7 @@ static int tcp_v6_send_synack(const struct sock *sk, struct dst_entry *dst,
|
|
|
opt = ireq->ipv6_opt;
|
|
|
if (!opt)
|
|
|
opt = rcu_dereference(np->opt);
|
|
|
- err = ip6_xmit(sk, skb, fl6, opt, np->tclass);
|
|
|
+ err = ip6_xmit(sk, skb, fl6, sk->sk_mark, opt, np->tclass);
|
|
|
rcu_read_unlock();
|
|
|
err = net_xmit_eval(err);
|
|
|
}
|
|
@@ -840,8 +840,7 @@ static void tcp_v6_send_response(const struct sock *sk, struct sk_buff *skb, u32
|
|
|
dst = ip6_dst_lookup_flow(ctl_sk, &fl6, NULL);
|
|
|
if (!IS_ERR(dst)) {
|
|
|
skb_dst_set(buff, dst);
|
|
|
- ctl_sk->sk_mark = fl6.flowi6_mark;
|
|
|
- ip6_xmit(ctl_sk, buff, &fl6, NULL, tclass);
|
|
|
+ ip6_xmit(ctl_sk, buff, &fl6, fl6.flowi6_mark, NULL, tclass);
|
|
|
TCP_INC_STATS(net, TCP_MIB_OUTSEGS);
|
|
|
if (rst)
|
|
|
TCP_INC_STATS(net, TCP_MIB_OUTRSTS);
|