diff options
Diffstat (limited to 'fs/nfs/client.c')
-rw-r--r-- | fs/nfs/client.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/fs/nfs/client.c b/fs/nfs/client.c index 99694442b93f..143149db3440 100644 --- a/fs/nfs/client.c +++ b/fs/nfs/client.c | |||
@@ -668,7 +668,8 @@ int nfs_init_server_rpcclient(struct nfs_server *server, | |||
668 | { | 668 | { |
669 | struct nfs_client *clp = server->nfs_client; | 669 | struct nfs_client *clp = server->nfs_client; |
670 | 670 | ||
671 | server->client = rpc_clone_client(clp->cl_rpcclient); | 671 | server->client = rpc_clone_client_set_auth(clp->cl_rpcclient, |
672 | pseudoflavour); | ||
672 | if (IS_ERR(server->client)) { | 673 | if (IS_ERR(server->client)) { |
673 | dprintk("%s: couldn't create rpc_client!\n", __func__); | 674 | dprintk("%s: couldn't create rpc_client!\n", __func__); |
674 | return PTR_ERR(server->client); | 675 | return PTR_ERR(server->client); |
@@ -678,16 +679,6 @@ int nfs_init_server_rpcclient(struct nfs_server *server, | |||
678 | timeo, | 679 | timeo, |
679 | sizeof(server->client->cl_timeout_default)); | 680 | sizeof(server->client->cl_timeout_default)); |
680 | server->client->cl_timeout = &server->client->cl_timeout_default; | 681 | server->client->cl_timeout = &server->client->cl_timeout_default; |
681 | |||
682 | if (pseudoflavour != clp->cl_rpcclient->cl_auth->au_flavor) { | ||
683 | struct rpc_auth *auth; | ||
684 | |||
685 | auth = rpcauth_create(pseudoflavour, server->client); | ||
686 | if (IS_ERR(auth)) { | ||
687 | dprintk("%s: couldn't create credcache!\n", __func__); | ||
688 | return PTR_ERR(auth); | ||
689 | } | ||
690 | } | ||
691 | server->client->cl_softrtry = 0; | 682 | server->client->cl_softrtry = 0; |
692 | if (server->flags & NFS_MOUNT_SOFT) | 683 | if (server->flags & NFS_MOUNT_SOFT) |
693 | server->client->cl_softrtry = 1; | 684 | server->client->cl_softrtry = 1; |