2007-10-26 17:32:45

by Chuck Lever

[permalink] [raw]
Subject: [PATCH 19/27] NFS: Ensure that NFS version 4 mounts use NFS_PORT if nfsport wasn't set

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 <[email protected]>
---

fs/nfs/super.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/fs/nfs/super.c b/fs/nfs/super.c
index fa517ae..1b2fac8 100644
--- a/fs/nfs/super.c
+++ b/fs/nfs/super.c
@@ -1612,6 +1612,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;


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs


2007-10-29 15:00:56

by Talpey, Thomas

[permalink] [raw]
Subject: Re: [PATCH 19/27] NFS: Ensure that NFS version 4 mounts use NFS_PORT if nfsport wasn't set

But... 2049 is only valid for TCP. Ther eis no such guarantee for RDMA,
SCTP, etc etc. Wouldn't it be safer/better to fail the mount if no port
is specified? This is what rpcbind would do if it fails to resolve the port,
for example.

Tom.

At 01:32 PM 10/26/2007, Chuck Lever wrote:
>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 <[email protected]>
>---
>
> fs/nfs/super.c | 2 ++
> 1 files changed, 2 insertions(+), 0 deletions(-)
>
>diff --git a/fs/nfs/super.c b/fs/nfs/super.c
>index fa517ae..1b2fac8 100644
>--- a/fs/nfs/super.c
>+++ b/fs/nfs/super.c
>@@ -1612,6 +1612,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;
>
>
>-------------------------------------------------------------------------
>This SF.net email is sponsored by: Splunk Inc.
>Still grepping through log files to find problems? Stop.
>Now Search log events and configuration files using AJAX and a browser.
>Download your FREE copy of Splunk now >> http://get.splunk.com/
>_______________________________________________
>NFS maillist - [email protected]
>https://lists.sourceforge.net/lists/listinfo/nfs

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
NFS maillist - [email protected]
https://lists.sourceforge.net/lists/listinfo/nfs