aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-12-30 20:39:37 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2008-12-30 20:39:37 -0500
commit5ed1836814d908f45cafde0e79cb85314ab9d41d (patch)
tree53db7ccf23c78d105b63adf4ee40a07068f0f856 /net/ipv4/tcp.c
parentab70537c32a3245325b48774664da588904e47f2 (diff)
parenteb4dea5853046727bfbb579f0c9a8cae7369f7c6 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: net: Fix percpu counters deadlock cpumask: prepare for iterators to only go to nr_cpu_ids/nr_cpumask_bits: net drivers/net/usb: use USB API functions rather than constants cls_cgroup: clean up Kconfig cls_cgroup: clean up for cgroup part cls_cgroup: fix an oops when removing a cgroup EtherExpress16: fix printing timed out status mlx4_en: Added "set_ringparam" Ethtool interface implementation mlx4_en: Always allocate RX ring for each interrupt vector mlx4_en: Verify number of RX rings doesn't exceed MAX_RX_RINGS IPVS: Make "no destination available" message more consistent between schedulers net: KS8695: removed duplicated #include tun: Fix SIOCSIFHWADDR error. smsc911x: compile fix re netif_rx signature changes netns: foreach_netdev_safe is insufficient in default_device_exit net: make xfrm_statistics_seq_show use generic snmp_fold_field net: Fix more NAPI interface netdev argument drop fallout. net: Fix unused variable warnings in pasemi_mac.c and spider_net.c
Diffstat (limited to 'net/ipv4/tcp.c')
-rw-r--r--net/ipv4/tcp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index 1f3d52946b3b..f28acf11fc67 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1836,7 +1836,6 @@ adjudge_to_death:
1836 state = sk->sk_state; 1836 state = sk->sk_state;
1837 sock_hold(sk); 1837 sock_hold(sk);
1838 sock_orphan(sk); 1838 sock_orphan(sk);
1839 percpu_counter_inc(sk->sk_prot->orphan_count);
1840 1839
1841 /* It is the last release_sock in its life. It will remove backlog. */ 1840 /* It is the last release_sock in its life. It will remove backlog. */
1842 release_sock(sk); 1841 release_sock(sk);
@@ -1849,6 +1848,8 @@ adjudge_to_death:
1849 bh_lock_sock(sk); 1848 bh_lock_sock(sk);
1850 WARN_ON(sock_owned_by_user(sk)); 1849 WARN_ON(sock_owned_by_user(sk));
1851 1850
1851 percpu_counter_inc(sk->sk_prot->orphan_count);
1852
1852 /* Have we already been destroyed by a softirq or backlog? */ 1853 /* Have we already been destroyed by a softirq or backlog? */
1853 if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE) 1854 if (state != TCP_CLOSE && sk->sk_state == TCP_CLOSE)
1854 goto out; 1855 goto out;