aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/sunrpc/svcsock.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c
index 07919e16be3e..52bd1130e83a 100644
--- a/net/sunrpc/svcsock.c
+++ b/net/sunrpc/svcsock.c
@@ -324,19 +324,21 @@ int svc_sock_names(struct svc_serv *serv, char *buf, const size_t buflen,
324 len = onelen; 324 len = onelen;
325 break; 325 break;
326 } 326 }
327 if (toclose && strcmp(toclose, buf + len) == 0) 327 if (toclose && strcmp(toclose, buf + len) == 0) {
328 closesk = svsk; 328 closesk = svsk;
329 else 329 svc_xprt_get(&closesk->sk_xprt);
330 } else
330 len += onelen; 331 len += onelen;
331 } 332 }
332 spin_unlock_bh(&serv->sv_lock); 333 spin_unlock_bh(&serv->sv_lock);
333 334
334 if (closesk) 335 if (closesk) {
335 /* Should unregister with portmap, but you cannot 336 /* Should unregister with portmap, but you cannot
336 * unregister just one protocol... 337 * unregister just one protocol...
337 */ 338 */
338 svc_close_xprt(&closesk->sk_xprt); 339 svc_close_xprt(&closesk->sk_xprt);
339 else if (toclose) 340 svc_xprt_put(&closesk->sk_xprt);
341 } else if (toclose)
340 return -ENOENT; 342 return -ENOENT;
341 return len; 343 return len;
342} 344}