diff options
author | James Bottomley <JBottomley@Parallels.com> | 2011-07-23 21:09:03 +0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-07-23 21:09:03 +0400 |
commit | 87045b033a62777337ae4aa62834876da09b5fb5 (patch) | |
tree | 26aefd28e436668ff906e42b1e0d75c056e33e01 /net/ipv4/xfrm4_output.c | |
parent | 0d83ab65ff1b54ce8b6cd172285cf71a38c4cceb (diff) | |
parent | bfe159a51203c15d23cb3158fffdc25ec4b4dda1 (diff) |
Merge branch 'scsi-fixes'
Diffstat (limited to 'net/ipv4/xfrm4_output.c')
-rw-r--r-- | net/ipv4/xfrm4_output.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/net/ipv4/xfrm4_output.c b/net/ipv4/xfrm4_output.c index 2d51840e53a..327a617d594 100644 --- a/net/ipv4/xfrm4_output.c +++ b/net/ipv4/xfrm4_output.c @@ -32,7 +32,12 @@ static int xfrm4_tunnel_check_size(struct sk_buff *skb) dst = skb_dst(skb); mtu = dst_mtu(dst); if (skb->len > mtu) { - icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, htonl(mtu)); + if (skb->sk) + ip_local_error(skb->sk, EMSGSIZE, ip_hdr(skb)->daddr, + inet_sk(skb->sk)->inet_dport, mtu); + else + icmp_send(skb, ICMP_DEST_UNREACH, + ICMP_FRAG_NEEDED, htonl(mtu)); ret = -EMSGSIZE; } out: |