浏览代码

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>
Chuck Lever 17 年之前
父节点
当前提交
efd8340bb1
共有 1 个文件被更改,包括 5 次插入16 次删除
  1. 5 16
      fs/nfs/super.c

+ 5 - 16
fs/nfs/super.c

@@ -1027,15 +1027,7 @@ static int nfs_try_mount(struct nfs_parsed_mount_data *args,
 		sin = args->mount_server.address;
 		sin = args->mount_server.address;
 	else
 	else
 		sin = args->nfs_server.address;
 		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);
 		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.version,
 			   args->mount_server.protocol,
 			   args->mount_server.protocol,
 			   root_fh);
 			   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;
 	return status;
 }
 }