|
@@ -105,7 +105,7 @@ static int __ip_local_out_sk(struct sock *sk, struct sk_buff *skb)
|
|
|
ip_send_check(iph);
|
|
|
return nf_hook(NFPROTO_IPV4, NF_INET_LOCAL_OUT,
|
|
|
net, sk, skb, NULL, skb_dst(skb)->dev,
|
|
|
- dst_output_okfn);
|
|
|
+ dst_output);
|
|
|
}
|
|
|
|
|
|
int __ip_local_out(struct sk_buff *skb)
|
|
@@ -115,11 +115,12 @@ int __ip_local_out(struct sk_buff *skb)
|
|
|
|
|
|
int ip_local_out_sk(struct sock *sk, struct sk_buff *skb)
|
|
|
{
|
|
|
+ struct net *net = dev_net(skb_dst(skb)->dev);
|
|
|
int err;
|
|
|
|
|
|
err = __ip_local_out_sk(sk, skb);
|
|
|
if (likely(err == 1))
|
|
|
- err = dst_output(sk, skb);
|
|
|
+ err = dst_output(net, sk, skb);
|
|
|
|
|
|
return err;
|
|
|
}
|
|
@@ -276,7 +277,7 @@ static int ip_finish_output(struct net *net, struct sock *sk, struct sk_buff *sk
|
|
|
/* Policy lookup after SNAT yielded a new policy */
|
|
|
if (skb_dst(skb)->xfrm) {
|
|
|
IPCB(skb)->flags |= IPSKB_REROUTED;
|
|
|
- return dst_output(sk, skb);
|
|
|
+ return dst_output(net, sk, skb);
|
|
|
}
|
|
|
#endif
|
|
|
mtu = ip_skb_dst_mtu(skb);
|