diff mbox

SUNRPC: continue run over clients list on PipeFS event instead of break

Message ID 20121217171852.26922.37774.stgit@localhost.localdomain (mailing list archive)
State New, archived
Headers show

Commit Message

Stanislav Kinsbursky Dec. 17, 2012, 5:18 p.m. UTC
There are SUNRPC clients, which program doesn't have pipe_dir_name. These
clients can be skipped on PipeFS events, because nothing have to be created or
destroyed. But instead of breaking in case of such a client was found, search
for suitable client over clients list have to be continued. Otherwise some
clients could not be covered by PipeFS event handler.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Cc: stable@vger.kernel.org [>= v3.4]
---
 net/sunrpc/clnt.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)


--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Trond Myklebust Dec. 17, 2012, 5:21 p.m. UTC | #1
On Mon, 2012-12-17 at 20:18 +0300, Stanislav Kinsbursky wrote:
> There are SUNRPC clients, which program doesn't have pipe_dir_name. These
> clients can be skipped on PipeFS events, because nothing have to be created or
> destroyed. But instead of breaking in case of such a client was found, search
> for suitable client over clients list have to be continued. Otherwise some
> clients could not be covered by PipeFS event handler.
> 
> Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
> Cc: stable@vger.kernel.org [>= v3.4]
> ---
>  net/sunrpc/clnt.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
> index cdc7564..10b18b2 100644
> --- a/net/sunrpc/clnt.c
> +++ b/net/sunrpc/clnt.c
> @@ -234,7 +234,7 @@ static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
>  	spin_lock(&sn->rpc_client_lock);
>  	list_for_each_entry(clnt, &sn->all_clients, cl_clients) {
>  		if (clnt->cl_program->pipe_dir_name == NULL)
> -			break;
> +			continue;
>  		if (rpc_clnt_skip_event(clnt, event))
>  			continue;
>  		if (atomic_inc_not_zero(&clnt->cl_count) == 0)
> 

Thanks Stanislav! Applied.
diff mbox

Patch

diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index cdc7564..10b18b2 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -234,7 +234,7 @@  static struct rpc_clnt *rpc_get_client_for_event(struct net *net, int event)
 	spin_lock(&sn->rpc_client_lock);
 	list_for_each_entry(clnt, &sn->all_clients, cl_clients) {
 		if (clnt->cl_program->pipe_dir_name == NULL)
-			break;
+			continue;
 		if (rpc_clnt_skip_event(clnt, event))
 			continue;
 		if (atomic_inc_not_zero(&clnt->cl_count) == 0)