diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2007-09-11 18:00:58 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-09 17:17:01 -0400 |
commit | efd8340bb19c26a43e77c92fee9283b1f5777204 (patch) | |
tree | 86cdb3fde61d900f0ba350db7c9d9586d7d2dcec | |
parent | b79dc8ced1412e7056f3969bef40a30cc75ee530 (diff) | |
download | op-kernel-dev-efd8340bb19c26a43e77c92fee9283b1f5777204.zip op-kernel-dev-efd8340bb19c26a43e77c92fee9283b1f5777204.tar.gz |
NFS: Kernel mount client should use async bind
Simplify the in-kernel mount client by using autobind instead of an
explicit call to rpc_getport_sync.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | fs/nfs/super.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index 42b8c67..5085f53 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c @@ -1027,15 +1027,7 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args, sin = args->mount_server.address; else sin = args->nfs_server.address; - if (args->mount_server.port == 0) { - status = rpcb_getport_sync(&sin, - args->mount_server.program, - args->mount_server.version, - args->mount_server.protocol); - if (status < 0) - goto out_err; - sin.sin_port = htons(status); - } else + if (args->mount_server.port != 0) sin.sin_port = htons(args->mount_server.port); /* @@ -1049,14 +1041,11 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args, args->mount_server.version, args->mount_server.protocol, root_fh); - if (status < 0) - goto out_err; - - return status; + if (status == 0) + return 0; -out_err: - dfprintk(MOUNT, "NFS: unable to contact server on host " - NIPQUAD_FMT "\n", NIPQUAD(sin.sin_addr.s_addr)); + dfprintk(MOUNT, "NFS: unable to mount server " NIPQUAD_FMT + ", error %d\n", NIPQUAD(sin.sin_addr.s_addr), status); return status; } |