]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - fs/nfs/client.c
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux.git] / fs / nfs / client.c
index 69c0708b2accdd3a715e9816a32ba8d11772ba25..989c30c98511d9d8404803803e4d1a9b7a462a9a 100644 (file)
@@ -474,6 +474,7 @@ void nfs_init_timeout_values(struct rpc_timeout *to, int proto,
                        to->to_maxval = to->to_initval;
                to->to_exponential = 0;
                break;
+#ifndef CONFIG_NFS_DISABLE_UDP_SUPPORT
        case XPRT_TRANSPORT_UDP:
                if (retrans == NFS_UNSPEC_RETRANS)
                        to->to_retries = NFS_DEF_UDP_RETRANS;
@@ -484,6 +485,7 @@ void nfs_init_timeout_values(struct rpc_timeout *to, int proto,
                to->to_maxval = NFS_MAX_UDP_TIMEOUT;
                to->to_exponential = 1;
                break;
+#endif
        default:
                BUG();
        }
@@ -580,8 +582,10 @@ static int nfs_start_lockd(struct nfs_server *server)
                default:
                        nlm_init.protocol = IPPROTO_TCP;
                        break;
+#ifndef CONFIG_NFS_DISABLE_UDP_SUPPORT
                case XPRT_TRANSPORT_UDP:
                        nlm_init.protocol = IPPROTO_UDP;
+#endif
        }
 
        host = nlmclnt_init(&nlm_init);
@@ -658,17 +662,17 @@ EXPORT_SYMBOL_GPL(nfs_init_client);
  * Create a version 2 or 3 client
  */
 static int nfs_init_server(struct nfs_server *server,
-                          const struct nfs_fs_context *ctx,
-                          struct nfs_subversion *nfs_mod)
+                          const struct fs_context *fc)
 {
+       const struct nfs_fs_context *ctx = nfs_fc2context(fc);
        struct rpc_timeout timeparms;
        struct nfs_client_initdata cl_init = {
                .hostname = ctx->nfs_server.hostname,
                .addr = (const struct sockaddr *)&ctx->nfs_server.address,
                .addrlen = ctx->nfs_server.addrlen,
-               .nfs_mod = nfs_mod,
+               .nfs_mod = ctx->nfs_mod,
                .proto = ctx->nfs_server.protocol,
-               .net = ctx->net,
+               .net = fc->net_ns,
                .timeparms = &timeparms,
                .cred = server->cred,
                .nconnect = ctx->nfs_server.nconnect,
@@ -951,10 +955,10 @@ EXPORT_SYMBOL_GPL(nfs_free_server);
  * Create a version 2 or 3 volume record
  * - keyed on server and FSID
  */
-struct nfs_server *nfs_create_server(struct nfs_mount_info *mount_info)
+struct nfs_server *nfs_create_server(struct fs_context *fc)
 {
+       struct nfs_fs_context *ctx = nfs_fc2context(fc);
        struct nfs_server *server;
-       struct nfs_subversion *nfs_mod = mount_info->nfs_mod;
        struct nfs_fattr *fattr;
        int error;
 
@@ -970,18 +974,18 @@ struct nfs_server *nfs_create_server(struct nfs_mount_info *mount_info)
                goto error;
 
        /* Get a client representation */
-       error = nfs_init_server(server, mount_info->ctx, nfs_mod);
+       error = nfs_init_server(server, fc);
        if (error < 0)
                goto error;
 
        /* Probe the root fh to retrieve its FSID */
-       error = nfs_probe_fsinfo(server, mount_info->mntfh, fattr);
+       error = nfs_probe_fsinfo(server, ctx->mntfh, fattr);
        if (error < 0)
                goto error;
        if (server->nfs_client->rpc_ops->version == 3) {
                if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN)
                        server->namelen = NFS3_MAXNAMLEN;
-               if (!(mount_info->ctx->flags & NFS_MOUNT_NORDIRPLUS))
+               if (!(ctx->flags & NFS_MOUNT_NORDIRPLUS))
                        server->caps |= NFS_CAP_READDIRPLUS;
        } else {
                if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN)
@@ -989,8 +993,8 @@ struct nfs_server *nfs_create_server(struct nfs_mount_info *mount_info)
        }
 
        if (!(fattr->valid & NFS_ATTR_FATTR)) {
-               error = nfs_mod->rpc_ops->getattr(server, mount_info->mntfh,
-                               fattr, NULL, NULL);
+               error = ctx->nfs_mod->rpc_ops->getattr(server, ctx->mntfh,
+                                                      fattr, NULL, NULL);
                if (error < 0) {
                        dprintk("nfs_create_server: getattr error = %d\n", -error);
                        goto error;