]> err.no Git - linux-2.6/blobdiff - fs/nfs/mount_clnt.c
[PATCH] wan/sdla section fixes
[linux-2.6] / fs / nfs / mount_clnt.c
index 4a1340358223f7b640a185c6d6d31f6ca95e8d91..445abb4d42146e445e515c6a85292d8b8ecb1969 100644 (file)
@@ -49,9 +49,12 @@ nfsroot_mount(struct sockaddr_in *addr, char *path, struct nfs_fh *fh,
        struct mnt_fhstatus     result = {
                .fh             = fh
        };
+       struct rpc_message msg  = {
+               .rpc_argp       = path,
+               .rpc_resp       = &result,
+       };
        char                    hostname[32];
        int                     status;
-       int                     call;
 
        dprintk("NFS:      nfs_mount(%08x:%s)\n",
                        (unsigned)ntohl(addr->sin_addr.s_addr), path);
@@ -61,8 +64,12 @@ nfsroot_mount(struct sockaddr_in *addr, char *path, struct nfs_fh *fh,
        if (IS_ERR(mnt_clnt))
                return PTR_ERR(mnt_clnt);
 
-       call = (version == NFS_MNT3_VERSION) ? MOUNTPROC3_MNT : MNTPROC_MNT;
-       status = rpc_call(mnt_clnt, call, path, &result, 0);
+       if (version == NFS_MNT3_VERSION)
+               msg.rpc_proc = &mnt_clnt->cl_procinfo[MOUNTPROC3_MNT];
+       else
+               msg.rpc_proc = &mnt_clnt->cl_procinfo[MNTPROC_MNT];
+
+       status = rpc_call_sync(mnt_clnt, &msg, 0);
        return status < 0? status : (result.status? -EACCES : 0);
 }
 
@@ -178,7 +185,7 @@ static struct rpc_stat              mnt_stats;
 static struct rpc_program      mnt_program = {
        .name           = "mount",
        .number         = NFS_MNT_PROGRAM,
-       .nrvers         = sizeof(mnt_version)/sizeof(mnt_version[0]),
+       .nrvers         = ARRAY_SIZE(mnt_version),
        .version        = mnt_version,
        .stats          = &mnt_stats,
 };