From 62a7ad234c54be8fdca43dc37366aa313b18d890 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 15 Nov 2010 11:27:01 +1100 Subject: [PATCH] --- yaml --- r: 231139 b: refs/heads/master c: 3942302ea9e1dffa933021b20bf1642046e7641b h: refs/heads/master i: 231137: 13eab1936b41304472e0c764fa94f7074f7d2338 231135: 415bec1dd6f3c18080af88e3fb38d5d782fa2502 v: v3 --- [refs] | 2 +- trunk/net/sunrpc/svcsock.c | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 2a8e0cec0b90..e84239e9db83 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7c96aef75949a56ec427fc6a2522dace2af33605 +refs/heads/master: 3942302ea9e1dffa933021b20bf1642046e7641b diff --git a/trunk/net/sunrpc/svcsock.c b/trunk/net/sunrpc/svcsock.c index 07919e16be3e..52bd1130e83a 100644 --- a/trunk/net/sunrpc/svcsock.c +++ b/trunk/net/sunrpc/svcsock.c @@ -324,19 +324,21 @@ int svc_sock_names(struct svc_serv *serv, char *buf, const size_t buflen, len = onelen; break; } - if (toclose && strcmp(toclose, buf + len) == 0) + if (toclose && strcmp(toclose, buf + len) == 0) { closesk = svsk; - else + svc_xprt_get(&closesk->sk_xprt); + } else len += onelen; } spin_unlock_bh(&serv->sv_lock); - if (closesk) + if (closesk) { /* Should unregister with portmap, but you cannot * unregister just one protocol... */ svc_close_xprt(&closesk->sk_xprt); - else if (toclose) + svc_xprt_put(&closesk->sk_xprt); + } else if (toclose) return -ENOENT; return len; }