SUNRPC: continue run over clients list on PipeFS event instead of break
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Mon, 17 Dec 2012 17:18:52 +0000 (20:18 +0300)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Mon, 17 Dec 2012 17:19:16 +0000 (12:19 -0500)
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]
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
net/sunrpc/clnt.c

index 55e174f2d02fb745ed11c80f1fd997114d429949..822f020fa7f458e07a8e216e6609447daefb8747 100644 (file)
@@ -237,7 +237,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)