Lines Matching refs:args
353 static struct rpc_clnt * rpc_new_client(const struct rpc_create_args *args, in rpc_new_client() argument
358 const struct rpc_program *program = args->program; in rpc_new_client()
362 const char *nodename = args->nodename; in rpc_new_client()
370 if (args->version >= program->nrvers) in rpc_new_client()
372 version = program->version[args->version]; in rpc_new_client()
381 clnt->cl_xprtsec = args->xprtsec; in rpc_new_client()
387 clnt->cl_cred = get_cred(args->cred); in rpc_new_client()
390 clnt->cl_prog = args->prognumber ? : program->number; in rpc_new_client()
392 clnt->cl_stats = args->stats ? : program->stats; in rpc_new_client()
403 if (args->timeout != NULL) { in rpc_new_client()
404 memcpy(&clnt->cl_timeout_default, args->timeout, in rpc_new_client()
425 err = rpc_client_register(clnt, args->authflavor, args->client_name); in rpc_new_client()
431 trace_rpc_clnt_new(clnt, xprt, args); in rpc_new_client()
446 trace_rpc_clnt_new_err(program->name, args->servername, err); in rpc_new_client()
450 static struct rpc_clnt *rpc_create_xprt(struct rpc_create_args *args, in rpc_create_xprt() argument
456 if (args->bc_xprt && args->bc_xprt->xpt_bc_xps) { in rpc_create_xprt()
457 WARN_ON_ONCE(!(args->protocol & XPRT_TRANSPORT_BC)); in rpc_create_xprt()
458 xps = args->bc_xprt->xpt_bc_xps; in rpc_create_xprt()
471 clnt = rpc_new_client(args, xps, xprt, NULL); in rpc_create_xprt()
475 if (!(args->flags & RPC_CLNT_CREATE_NOPING)) { in rpc_create_xprt()
481 } else if (args->flags & RPC_CLNT_CREATE_CONNECTED) { in rpc_create_xprt()
490 if (args->flags & (RPC_CLNT_CREATE_HARDRTRY|RPC_CLNT_CREATE_SOFTERR)) { in rpc_create_xprt()
492 if (args->flags & RPC_CLNT_CREATE_SOFTERR) in rpc_create_xprt()
496 if (args->flags & RPC_CLNT_CREATE_AUTOBIND) in rpc_create_xprt()
498 if (args->flags & RPC_CLNT_CREATE_NO_RETRANS_TIMEOUT) in rpc_create_xprt()
500 if (args->flags & RPC_CLNT_CREATE_DISCRTRY) in rpc_create_xprt()
502 if (!(args->flags & RPC_CLNT_CREATE_QUIET)) in rpc_create_xprt()
504 if (args->flags & RPC_CLNT_CREATE_NETUNREACH_FATAL) in rpc_create_xprt()
520 struct rpc_clnt *rpc_create(struct rpc_create_args *args) in rpc_create() argument
524 .net = args->net, in rpc_create()
525 .ident = args->protocol, in rpc_create()
526 .srcaddr = args->saddress, in rpc_create()
527 .dstaddr = args->address, in rpc_create()
528 .addrlen = args->addrsize, in rpc_create()
529 .servername = args->servername, in rpc_create()
530 .bc_xprt = args->bc_xprt, in rpc_create()
531 .xprtsec = args->xprtsec, in rpc_create()
532 .connect_timeout = args->connect_timeout, in rpc_create()
533 .reconnect_timeout = args->reconnect_timeout, in rpc_create()
539 if (args->bc_xprt) { in rpc_create()
540 WARN_ON_ONCE(!(args->protocol & XPRT_TRANSPORT_BC)); in rpc_create()
541 xprt = args->bc_xprt->xpt_bc_xprt; in rpc_create()
544 return rpc_create_xprt(args, xprt); in rpc_create()
548 if (args->flags & RPC_CLNT_CREATE_INFINITE_SLOTS) in rpc_create()
550 if (args->flags & RPC_CLNT_CREATE_NO_IDLE_TIMEOUT) in rpc_create()
558 (struct sockaddr_un *)args->address; in rpc_create()
560 (struct sockaddr_in *)args->address; in rpc_create()
562 (struct sockaddr_in6 *)args->address; in rpc_create()
565 switch (args->address->sa_family) { in rpc_create()
601 if (args->flags & RPC_CLNT_CREATE_NONPRIVPORT) in rpc_create()
604 if (args->flags & RPC_CLNT_CREATE_REUSEPORT) in rpc_create()
607 clnt = rpc_create_xprt(args, xprt); in rpc_create()
608 if (IS_ERR(clnt) || args->nconnect <= 1) in rpc_create()
611 for (i = 0; i < args->nconnect - 1; i++) { in rpc_create()
624 static struct rpc_clnt *__rpc_clone_client(struct rpc_create_args *args, in __rpc_clone_client() argument
642 args->servername = xprt->servername; in __rpc_clone_client()
643 args->nodename = clnt->cl_nodename; in __rpc_clone_client()
645 new = rpc_new_client(args, xps, xprt, clnt); in __rpc_clone_client()
675 struct rpc_create_args args = { in rpc_clone_client() local
683 return __rpc_clone_client(&args, clnt); in rpc_clone_client()
698 struct rpc_create_args args = { in rpc_clone_client_set_auth() local
706 return __rpc_clone_client(&args, clnt); in rpc_clone_client_set_auth()
726 struct xprt_create *args, in rpc_switch_client_transport() argument
736 args->xprtsec = clnt->cl_xprtsec; in rpc_switch_client_transport()
737 xprt = xprt_create_transport(args); in rpc_switch_client_transport()
1059 struct rpc_create_args args = { in rpc_bind_new_program() local
1071 clnt = __rpc_clone_client(&args, old); in rpc_bind_new_program()