Merge tag 'nfs-for-4.8-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
[linux-2.6-block.git] / fs / nfs / client.c
index 487c5607d52f4c5c853a1f13cc8fbb545e9e79a2..003ebce4bbc49fa0e5508816027ae65798119e4f 100644 (file)
@@ -367,8 +367,6 @@ nfs_found_client(const struct nfs_client_initdata *cl_init,
  */
 struct nfs_client *
 nfs_get_client(const struct nfs_client_initdata *cl_init,
-              const struct rpc_timeout *timeparms,
-              const char *ip_addr,
               rpc_authflavor_t authflavour)
 {
        struct nfs_client *clp, *new = NULL;
@@ -399,7 +397,7 @@ nfs_get_client(const struct nfs_client_initdata *cl_init,
                                        &nn->nfs_client_list);
                        spin_unlock(&nn->nfs_client_lock);
                        new->cl_flags = cl_init->init_flags;
-                       return rpc_ops->init_client(new, timeparms, ip_addr);
+                       return rpc_ops->init_client(new, cl_init);
                }
 
                spin_unlock(&nn->nfs_client_lock);
@@ -470,7 +468,7 @@ EXPORT_SYMBOL_GPL(nfs_init_timeout_values);
  * Create an RPC client handle
  */
 int nfs_create_rpc_client(struct nfs_client *clp,
-                         const struct rpc_timeout *timeparms,
+                         const struct nfs_client_initdata *cl_init,
                          rpc_authflavor_t flavor)
 {
        struct rpc_clnt         *clnt = NULL;
@@ -479,8 +477,9 @@ int nfs_create_rpc_client(struct nfs_client *clp,
                .protocol       = clp->cl_proto,
                .address        = (struct sockaddr *)&clp->cl_addr,
                .addrsize       = clp->cl_addrlen,
-               .timeout        = timeparms,
+               .timeout        = cl_init->timeparms,
                .servername     = clp->cl_hostname,
+               .nodename       = cl_init->nodename,
                .program        = &nfs_program,
                .version        = clp->rpc_ops->version,
                .authflavor     = flavor,
@@ -591,14 +590,12 @@ EXPORT_SYMBOL_GPL(nfs_init_server_rpcclient);
  * nfs_init_client - Initialise an NFS2 or NFS3 client
  *
  * @clp: nfs_client to initialise
- * @timeparms: timeout parameters for underlying RPC transport
- * @ip_addr: IP presentation address (not used)
+ * @cl_init: Initialisation parameters
  *
  * Returns pointer to an NFS client, or an ERR_PTR value.
  */
 struct nfs_client *nfs_init_client(struct nfs_client *clp,
-                   const struct rpc_timeout *timeparms,
-                   const char *ip_addr)
+                                  const struct nfs_client_initdata *cl_init)
 {
        int error;
 
@@ -612,7 +609,7 @@ struct nfs_client *nfs_init_client(struct nfs_client *clp,
         * Create a client RPC handle for doing FSSTAT with UNIX auth only
         * - RFC 2623, sec 2.3.2
         */
-       error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
+       error = nfs_create_rpc_client(clp, cl_init, RPC_AUTH_UNIX);
        if (error < 0)
                goto error;
        nfs_mark_client_ready(clp, NFS_CS_READY);
@@ -633,6 +630,7 @@ static int nfs_init_server(struct nfs_server *server,
                           const struct nfs_parsed_mount_data *data,
                           struct nfs_subversion *nfs_mod)
 {
+       struct rpc_timeout timeparms;
        struct nfs_client_initdata cl_init = {
                .hostname = data->nfs_server.hostname,
                .addr = (const struct sockaddr *)&data->nfs_server.address,
@@ -640,8 +638,8 @@ static int nfs_init_server(struct nfs_server *server,
                .nfs_mod = nfs_mod,
                .proto = data->nfs_server.protocol,
                .net = data->net,
+               .timeparms = &timeparms,
        };
-       struct rpc_timeout timeparms;
        struct nfs_client *clp;
        int error;
 
@@ -653,7 +651,7 @@ static int nfs_init_server(struct nfs_server *server,
                set_bit(NFS_CS_NORESVPORT, &cl_init.init_flags);
 
        /* Allocate or find a client reference we can use */
-       clp = nfs_get_client(&cl_init, &timeparms, NULL, RPC_AUTH_UNIX);
+       clp = nfs_get_client(&cl_init, RPC_AUTH_UNIX);
        if (IS_ERR(clp)) {
                dprintk("<-- nfs_init_server() = error %ld\n", PTR_ERR(clp));
                return PTR_ERR(clp);