aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sunrpc/pmap_clnt.c33
1 files changed, 15 insertions, 18 deletions
diff --git a/net/sunrpc/pmap_clnt.c b/net/sunrpc/pmap_clnt.c
index 523f0e825dea..f476f4df0f48 100644
--- a/net/sunrpc/pmap_clnt.c
+++ b/net/sunrpc/pmap_clnt.c
@@ -281,25 +281,22 @@ int rpc_register(u32 prog, u32 vers, int prot, unsigned short port, int *okay)
281 281
282static struct rpc_clnt *pmap_create(char *hostname, struct sockaddr_in *srvaddr, int proto, int privileged) 282static struct rpc_clnt *pmap_create(char *hostname, struct sockaddr_in *srvaddr, int proto, int privileged)
283{ 283{
284 struct rpc_xprt *xprt; 284 struct rpc_create_args args = {
285 struct rpc_clnt *clnt; 285 .protocol = proto,
286 286 .address = (struct sockaddr *)srvaddr,
287 xprt = xprt_create_proto(proto, srvaddr, NULL); 287 .addrsize = sizeof(*srvaddr),
288 if (IS_ERR(xprt)) 288 .servername = hostname,
289 return (struct rpc_clnt *)xprt; 289 .program = &pmap_program,
290 xprt->ops->set_port(xprt, RPC_PMAP_PORT); 290 .version = RPC_PMAP_VERSION,
291 xprt_set_bound(xprt); 291 .authflavor = RPC_AUTH_UNIX,
292 .flags = (RPC_CLNT_CREATE_ONESHOT |
293 RPC_CLNT_CREATE_NOPING),
294 };
295
296 srvaddr->sin_port = htons(RPC_PMAP_PORT);
292 if (!privileged) 297 if (!privileged)
293 xprt->resvport = 0; 298 args.flags |= RPC_CLNT_CREATE_NONPRIVPORT;
294 299 return rpc_create(&args);
295 clnt = rpc_new_client(xprt, hostname,
296 &pmap_program, RPC_PMAP_VERSION,
297 RPC_AUTH_UNIX);
298 if (!IS_ERR(clnt)) {
299 clnt->cl_softrtry = 1;
300 clnt->cl_oneshot = 1;
301 }
302 return clnt;
303} 300}
304 301
305/* 302/*