summaryrefslogtreecommitdiff
path: root/include/net/inet_timewait_sock.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-10-13 06:07:59 +0400
committerLinus Torvalds <torvalds@g5.osdl.org>2005-10-13 06:07:59 +0400
commit02d31ed258434b29eb0e3a10f5ede6eecd46b6ba (patch)
treee901ed8af00756086e2da1a5e0c52602d2b01603 /include/net/inet_timewait_sock.h
parent1b66e9fe8523cc239b6bea8443a860f50aeb2a83 (diff)
parent9ff5c59ce278c37bca22fbf98076d199bcaf9845 (diff)
downloadlinux-02d31ed258434b29eb0e3a10f5ede6eecd46b6ba.tar.xz
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Diffstat (limited to 'include/net/inet_timewait_sock.h')
-rw-r--r--include/net/inet_timewait_sock.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h
index 4ade56ef3a4d..28f7b2103505 100644
--- a/include/net/inet_timewait_sock.h
+++ b/include/net/inet_timewait_sock.h
@@ -19,6 +19,7 @@
#include <linux/ip.h>
#include <linux/list.h>
+#include <linux/module.h>
#include <linux/timer.h>
#include <linux/types.h>
#include <linux/workqueue.h>
@@ -193,11 +194,13 @@ static inline u32 inet_rcv_saddr(const struct sock *sk)
static inline void inet_twsk_put(struct inet_timewait_sock *tw)
{
if (atomic_dec_and_test(&tw->tw_refcnt)) {
+ struct module *owner = tw->tw_prot->owner;
#ifdef SOCK_REFCNT_DEBUG
printk(KERN_DEBUG "%s timewait_sock %p released\n",
tw->tw_prot->name, tw);
#endif
kmem_cache_free(tw->tw_prot->twsk_slab, tw);
+ module_put(owner);
}
}