NFS: Kernel mount client should use async bind
authorChuck Lever <chuck.lever@oracle.com>
Tue, 11 Sep 2007 22:00:58 +0000 (18:00 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Tue, 9 Oct 2007 21:17:01 +0000 (17:17 -0400)
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>
fs/nfs/super.c

index 42b8c67..5085f53 100644 (file)
@@ -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;
 }