summaryrefslogtreecommitdiffstats
path: root/net/ipv4/ip_output.c
diff options
context:
space:
mode:
author <jgarzik@pretzel.yyz.us>2005-06-04 00:40:40 -0400
committerJeff Garzik <jgarzik@pobox.com>2005-06-04 00:40:40 -0400
commitae20ea8525a80a863f70d332cf47b71bd9f54c1f (patch)
tree9d3cedeb65db521a8436b545bd91641549a18d24 /net/ipv4/ip_output.c
parentf497ba735fc9ff4e35a19641143708b3be1c7061 (diff)
parent8be3de3fd8469154a2b3e18a4712032dac5b4a53 (diff)
downloadkernel-crypto-ae20ea8525a80a863f70d332cf47b71bd9f54c1f.tar.gz
kernel-crypto-ae20ea8525a80a863f70d332cf47b71bd9f54c1f.tar.xz
kernel-crypto-ae20ea8525a80a863f70d332cf47b71bd9f54c1f.zip
Automatic merge of /spare/repo/linux-2.6/.git branch HEAD
Diffstat (limited to 'net/ipv4/ip_output.c')
-rw-r--r--net/ipv4/ip_output.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index daebd93fd8a..760dc8238d6 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -490,6 +490,14 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
/* Partially cloned skb? */
if (skb_shared(frag))
goto slow_path;
+
+ BUG_ON(frag->sk);
+ if (skb->sk) {
+ sock_hold(skb->sk);
+ frag->sk = skb->sk;
+ frag->destructor = sock_wfree;
+ skb->truesize -= frag->truesize;
+ }
}
/* Everything is OK. Generate! */