]> git.karo-electronics.de Git - mv-sheeva.git/commitdiff
NFS: Ensure that NFS version 4 mounts use NFS_PORT if nfsport wasn't set
authorChuck Lever <chuck.lever@oracle.com>
Fri, 26 Oct 2007 17:32:19 +0000 (13:32 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 30 Jan 2008 07:05:45 +0000 (02:05 -0500)
Text-based mount option parsing introduced a minor regression in the
behavior of NFS version 4 mounts.  NFS version 4 is not supposed to require
a running rpcbind service on the server in order for a mount to succeed.

In other words, if the mount options don't specify a port number, the port
number is supposed to default to 2049.  For earlier versions of NFS, the
default port number was zero in order to cause the RPC client to autobind
to the server's NFS service.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/super.c

index fda1635dd1336779cff5181eac91ccf659fea951..7d84d94fa827f4ecb386ad85c87df315658e2cd7 100644 (file)
@@ -1643,6 +1643,8 @@ static int nfs4_validate_mount_data(void *options,
                if (nfs_parse_mount_options((char *)options, args) == 0)
                        return -EINVAL;
 
+               if (args->nfs_server.address.sin_port == 0)
+                       args->nfs_server.address.sin_port = htons(NFS_PORT);
                if (!nfs_verify_server_address((struct sockaddr *)
                                                &args->nfs_server.address))
                        return -EINVAL;