diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-03 19:40:37 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-12-03 19:40:37 -0500 |
commit | 2433c41789d6aa6797ca747707b7764e88e4fb6d (patch) | |
tree | a4f1706a1038bb8df671807c9ead0fa6abf9b4ed /net/sunrpc | |
parent | cd92a17eec752f8c948c4b6ab93dc099ce55b8cb (diff) | |
parent | a8d82d9b950213b66b22c9e7c63a058841de2394 (diff) |
Merge branch 'for-2.6.28' of git://linux-nfs.org/~bfields/linux
* 'for-2.6.28' of git://linux-nfs.org/~bfields/linux:
NLM: client-side nlm_lookup_host() should avoid matching on srcaddr
nfsd: use of unitialized list head on error exit in nfs4recover.c
Add a reference to sunrpc in svc_addsock
nfsd: clean up grace period on early exit
Diffstat (limited to 'net/sunrpc')
-rw-r--r-- | net/sunrpc/svcsock.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c index 95293f549e9c..a1951dcc5776 100644 --- a/net/sunrpc/svcsock.c +++ b/net/sunrpc/svcsock.c | |||
@@ -1183,7 +1183,11 @@ int svc_addsock(struct svc_serv *serv, | |||
1183 | else if (so->state > SS_UNCONNECTED) | 1183 | else if (so->state > SS_UNCONNECTED) |
1184 | err = -EISCONN; | 1184 | err = -EISCONN; |
1185 | else { | 1185 | else { |
1186 | svsk = svc_setup_socket(serv, so, &err, SVC_SOCK_DEFAULTS); | 1186 | if (!try_module_get(THIS_MODULE)) |
1187 | err = -ENOENT; | ||
1188 | else | ||
1189 | svsk = svc_setup_socket(serv, so, &err, | ||
1190 | SVC_SOCK_DEFAULTS); | ||
1187 | if (svsk) { | 1191 | if (svsk) { |
1188 | struct sockaddr_storage addr; | 1192 | struct sockaddr_storage addr; |
1189 | struct sockaddr *sin = (struct sockaddr *)&addr; | 1193 | struct sockaddr *sin = (struct sockaddr *)&addr; |
@@ -1196,7 +1200,8 @@ int svc_addsock(struct svc_serv *serv, | |||
1196 | spin_unlock_bh(&serv->sv_lock); | 1200 | spin_unlock_bh(&serv->sv_lock); |
1197 | svc_xprt_received(&svsk->sk_xprt); | 1201 | svc_xprt_received(&svsk->sk_xprt); |
1198 | err = 0; | 1202 | err = 0; |
1199 | } | 1203 | } else |
1204 | module_put(THIS_MODULE); | ||
1200 | } | 1205 | } |
1201 | if (err) { | 1206 | if (err) { |
1202 | sockfd_put(so); | 1207 | sockfd_put(so); |