summaryrefslogtreecommitdiff
path: root/net/ipv4/inet_timewait_sock.c
diff options
context:
space:
mode:
authorArnaldo Carvalho de Melo <acme@ghostprotocols.net>2005-10-10 21:25:23 -0700
committerDavid S. Miller <davem@davemloft.net>2005-10-10 21:25:23 -0700
commiteeb2b8560676e454ad37ee30b49bc7d897edc9be (patch)
tree60b316e93b880aa1ba01a9c5496c8269a48b4de9 /net/ipv4/inet_timewait_sock.c
parent2a9bc9bb4d3a4570a8a48aadf071b91e657adb89 (diff)
downloadlinux-eeb2b8560676e454ad37ee30b49bc7d897edc9be.tar.gz
[TWSK]: Grab the module refcount for timewait sockets
This is required to avoid unloading a module that has active timewait sockets, such as DCCP. Signed-off-by: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/inet_timewait_sock.c')
-rw-r--r--net/ipv4/inet_timewait_sock.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
index f9076ef3a1a8..a010e9a68811 100644
--- a/net/ipv4/inet_timewait_sock.c
+++ b/net/ipv4/inet_timewait_sock.c
@@ -111,6 +111,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk, const int stat
tw->tw_prot = sk->sk_prot_creator;
atomic_set(&tw->tw_refcnt, 1);
inet_twsk_dead_node_init(tw);
+ __module_get(tw->tw_prot->owner);
}
return tw;