|
@@ -219,12 +219,10 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
|
|
|
kfree_skb(skb);
|
|
|
return -ENOBUFS;
|
|
|
}
|
|
|
+ if (skb->sk)
|
|
|
+ skb_set_owner_w(skb2, skb->sk);
|
|
|
consume_skb(skb);
|
|
|
skb = skb2;
|
|
|
- /* skb_set_owner_w() changes sk->sk_wmem_alloc atomically,
|
|
|
- * it is safe to call in our context (socket lock not held)
|
|
|
- */
|
|
|
- skb_set_owner_w(skb, (struct sock *)sk);
|
|
|
}
|
|
|
if (opt->opt_flen)
|
|
|
ipv6_push_frag_opts(skb, opt, &proto);
|