]> Pileus Git - ~andy/linux/blobdiff - fs/nfs/client.c
NFS: use in-kernel mount argument structure for nfsv[23] mounts
[~andy/linux] / fs / nfs / client.c
index a204484072f34ca37320f310eeee2b8bdbb35cca..f51eabff3cd00e4f58d6ee888ee872dce7edbc36 100644 (file)
@@ -501,9 +501,9 @@ static int nfs_init_server_rpcclient(struct nfs_server *server, rpc_authflavor_t
 /*
  * Initialise an NFS2 or NFS3 client
  */
-static int nfs_init_client(struct nfs_client *clp, const struct nfs_mount_data *data)
+static int nfs_init_client(struct nfs_client *clp,
+                          const struct nfs_parsed_mount_data *data)
 {
-       int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP;
        int error;
 
        if (clp->cl_cons_state == NFS_CS_READY) {
@@ -522,8 +522,8 @@ static int nfs_init_client(struct nfs_client *clp, const struct nfs_mount_data *
         * Create a client RPC handle for doing FSSTAT with UNIX auth only
         * - RFC 2623, sec 2.3.2
         */
-       error = nfs_create_rpc_client(clp, proto, data->timeo, data->retrans,
-                                       RPC_AUTH_UNIX, 0);
+       error = nfs_create_rpc_client(clp, data->nfs_server.protocol,
+                               data->timeo, data->retrans, RPC_AUTH_UNIX, 0);
        if (error < 0)
                goto error;
        nfs_mark_client_ready(clp, NFS_CS_READY);
@@ -538,7 +538,8 @@ error:
 /*
  * Create a version 2 or 3 client
  */
-static int nfs_init_server(struct nfs_server *server, const struct nfs_mount_data *data)
+static int nfs_init_server(struct nfs_server *server,
+                          const struct nfs_parsed_mount_data *data)
 {
        struct nfs_client *clp;
        int error, nfsvers = 2;
@@ -551,7 +552,8 @@ static int nfs_init_server(struct nfs_server *server, const struct nfs_mount_dat
 #endif
 
        /* Allocate or find a client reference we can use */
-       clp = nfs_get_client(data->hostname, &data->addr, nfsvers);
+       clp = nfs_get_client(data->nfs_server.hostname,
+                               &data->nfs_server.address, nfsvers);
        if (IS_ERR(clp)) {
                dprintk("<-- nfs_init_server() = error %ld\n", PTR_ERR(clp));
                return PTR_ERR(clp);
@@ -581,7 +583,7 @@ static int nfs_init_server(struct nfs_server *server, const struct nfs_mount_dat
        if (error < 0)
                goto error;
 
-       error = nfs_init_server_rpcclient(server, data->pseudoflavor);
+       error = nfs_init_server_rpcclient(server, data->auth_flavors[0]);
        if (error < 0)
                goto error;
 
@@ -760,7 +762,7 @@ void nfs_free_server(struct nfs_server *server)
  * Create a version 2 or 3 volume record
  * - keyed on server and FSID
  */
-struct nfs_server *nfs_create_server(const struct nfs_mount_data *data,
+struct nfs_server *nfs_create_server(const struct nfs_parsed_mount_data *data,
                                     struct nfs_fh *mntfh)
 {
        struct nfs_server *server;