aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r--fs/nfs/client.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 7547600b6174..d11cdaafb39a 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -470,7 +470,7 @@ static void nfs_init_timeout_values(struct rpc_timeout *to, int proto,
470static int nfs_create_rpc_client(struct nfs_client *clp, 470static int nfs_create_rpc_client(struct nfs_client *clp,
471 const struct rpc_timeout *timeparms, 471 const struct rpc_timeout *timeparms,
472 rpc_authflavor_t flavor, 472 rpc_authflavor_t flavor,
473 int flags) 473 int discrtry, int noresvport)
474{ 474{
475 struct rpc_clnt *clnt = NULL; 475 struct rpc_clnt *clnt = NULL;
476 struct rpc_create_args args = { 476 struct rpc_create_args args = {
@@ -482,9 +482,13 @@ static int nfs_create_rpc_client(struct nfs_client *clp,
482 .program = &nfs_program, 482 .program = &nfs_program,
483 .version = clp->rpc_ops->version, 483 .version = clp->rpc_ops->version,
484 .authflavor = flavor, 484 .authflavor = flavor,
485 .flags = flags,
486 }; 485 };
487 486
487 if (discrtry)
488 args.flags |= RPC_CLNT_CREATE_DISCRTRY;
489 if (noresvport)
490 args.flags |= RPC_CLNT_CREATE_NONPRIVPORT;
491
488 if (!IS_ERR(clp->cl_rpcclient)) 492 if (!IS_ERR(clp->cl_rpcclient))
489 return 0; 493 return 0;
490 494
@@ -623,7 +627,7 @@ static int nfs_init_client(struct nfs_client *clp,
623 * Create a client RPC handle for doing FSSTAT with UNIX auth only 627 * Create a client RPC handle for doing FSSTAT with UNIX auth only
624 * - RFC 2623, sec 2.3.2 628 * - RFC 2623, sec 2.3.2
625 */ 629 */
626 error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX, 0); 630 error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX, 0, 0);
627 if (error < 0) 631 if (error < 0)
628 goto error; 632 goto error;
629 nfs_mark_client_ready(clp, NFS_CS_READY); 633 nfs_mark_client_ready(clp, NFS_CS_READY);
@@ -979,7 +983,7 @@ static int nfs4_init_client(struct nfs_client *clp,
979 clp->rpc_ops = &nfs_v4_clientops; 983 clp->rpc_ops = &nfs_v4_clientops;
980 984
981 error = nfs_create_rpc_client(clp, timeparms, authflavour, 985 error = nfs_create_rpc_client(clp, timeparms, authflavour,
982 RPC_CLNT_CREATE_DISCRTRY); 986 1, 0);
983 if (error < 0) 987 if (error < 0)
984 goto error; 988 goto error;
985 memcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr)); 989 memcpy(clp->cl_ipaddr, ip_addr, sizeof(clp->cl_ipaddr));