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 | |
| 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')
| -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); |
