diff options
author | Thomas Gleixner <tglx@tglx.tec.linutronix.de> | 2005-05-23 15:11:45 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-05-23 15:11:45 +0200 |
commit | f08276136bdc8607c1da493279569beb9859b133 (patch) | |
tree | 5a4e7ea9300eece5ff5187fa7f64f0f48f37cf12 /net/ipv4/ip_output.c | |
parent | 7d27c8143c8234e1cae8285fd2d43c19dad69bde (diff) | |
parent | 1263cc67c09bc7f913a6877f3ba0427f0b76617e (diff) | |
download | op-kernel-dev-f08276136bdc8607c1da493279569beb9859b133.zip op-kernel-dev-f08276136bdc8607c1da493279569beb9859b133.tar.gz |
Merge with rsync://rsync.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'net/ipv4/ip_output.c')
-rw-r--r-- | net/ipv4/ip_output.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c index daebd93..760dc82 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! */ |