All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mount: make sure mount correctly when kernel not support NFSv4
@ 2010-11-25  5:54 Mi Jinlong
  2010-11-29 14:40 ` Chuck Lever
  0 siblings, 1 reply; 4+ messages in thread
From: Mi Jinlong @ 2010-11-25  5:54 UTC (permalink / raw)
  To: Steve Dickson; +Cc: NFSv3 list

When user's nfs client(kernel) don't support NFSv4, maybe they build
kernel without NFSv4, there is a problem.

When using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
filesystem, mount will fail and get error:

 "mount.nfs: an incorrect mount option was specified"

as above, the mount should success, but it fail.

When the mount command without specific NFS version, nfs-utils will
try to mount NFSv4 at first, but the kernel don't support, the kernel
will return with error EINVAL for parsing option (vers=4) fail.

nfs-utils should continue to try mounting NFSv3 when meeting that.

Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
---
 utils/mount/stropts.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 50a1a2a..e880c45 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -788,6 +788,10 @@ static int nfs_autonegotiate(struct nfsmount_info *mi)
 		/* Linux servers prior to 2.6.25 may return
 		 * EPERM when NFS version 4 is not supported. */
 		goto fall_back;
+	case EINVAL:
+		/* If Linux kernel don't support NFSv4, the EINVAL
+		 * will be return for parsing option (vers=4) fail. */
+		goto fall_back;
 	default:
 		return result;
 	}
-- 
1.7.3.2




^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] mount: make sure mount correctly when kernel not support NFSv4
  2010-11-25  5:54 [PATCH] mount: make sure mount correctly when kernel not support NFSv4 Mi Jinlong
@ 2010-11-29 14:40 ` Chuck Lever
  2010-11-30  6:54   ` Mi Jinlong
  0 siblings, 1 reply; 4+ messages in thread
From: Chuck Lever @ 2010-11-29 14:40 UTC (permalink / raw)
  To: Mi Jinlong; +Cc: Steve Dickson, NFSv3 list


On Nov 25, 2010, at 12:54 AM, Mi Jinlong wrote:

> When user's nfs client(kernel) don't support NFSv4, maybe they build
> kernel without NFSv4, there is a problem.
> 
> When using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
> filesystem, mount will fail and get error:
> 
> "mount.nfs: an incorrect mount option was specified"
> 
> as above, the mount should success, but it fail.
> 
> When the mount command without specific NFS version, nfs-utils will
> try to mount NFSv4 at first, but the kernel don't support, the kernel
> will return with error EINVAL for parsing option (vers=4) fail.

Maybe the kernel should return EOPNOTSUPP in that case?

> nfs-utils should continue to try mounting NFSv3 when meeting that.
> 
> Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
> ---
> utils/mount/stropts.c |    4 ++++
> 1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 50a1a2a..e880c45 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -788,6 +788,10 @@ static int nfs_autonegotiate(struct nfsmount_info *mi)
> 		/* Linux servers prior to 2.6.25 may return
> 		 * EPERM when NFS version 4 is not supported. */
> 		goto fall_back;
> +	case EINVAL:
> +		/* If Linux kernel don't support NFSv4, the EINVAL
> +		 * will be return for parsing option (vers=4) fail. */
> +		goto fall_back;
> 	default:
> 		return result;
> 	}
> -- 
> 1.7.3.2
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mount: make sure mount correctly when kernel not support NFSv4
  2010-11-29 14:40 ` Chuck Lever
@ 2010-11-30  6:54   ` Mi Jinlong
  2010-11-30 15:13     ` Chuck Lever
  0 siblings, 1 reply; 4+ messages in thread
From: Mi Jinlong @ 2010-11-30  6:54 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Steve Dickson, NFSv3 list, Trond.Myklebust



Chuck Lever :
> On Nov 25, 2010, at 12:54 AM, Mi Jinlong wrote:
> 
>> When user's nfs client(kernel) don't support NFSv4, maybe they build
>> kernel without NFSv4, there is a problem.
>>
>> When using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
>> filesystem, mount will fail and get error:
>>
>> "mount.nfs: an incorrect mount option was specified"
>>
>> as above, the mount should success, but it fail.
>>
>> When the mount command without specific NFS version, nfs-utils will
>> try to mount NFSv4 at first, but the kernel don't support, the kernel
>> will return with error EINVAL for parsing option (vers=4) fail.
> 
> Maybe the kernel should return EOPNOTSUPP in that case?

  Yes, what about the following patch.

--
thanks
Mi Jinlong
---------------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] mount: make sure mount correctly when kernel not support NFSv4
  2010-11-30  6:54   ` Mi Jinlong
@ 2010-11-30 15:13     ` Chuck Lever
  0 siblings, 0 replies; 4+ messages in thread
From: Chuck Lever @ 2010-11-30 15:13 UTC (permalink / raw)
  To: Mi Jinlong; +Cc: Steve Dickson, NFSv3 list, Trond.Myklebust


On Nov 30, 2010, at 1:54 AM, Mi Jinlong wrote:

> 
> 
> Chuck Lever :
>> On Nov 25, 2010, at 12:54 AM, Mi Jinlong wrote:
>> 
>>> When user's nfs client(kernel) don't support NFSv4, maybe they build
>>> kernel without NFSv4, there is a problem.
>>> 
>>> When using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
>>> filesystem, mount will fail and get error:
>>> 
>>> "mount.nfs: an incorrect mount option was specified"
>>> 
>>> as above, the mount should success, but it fail.
>>> 
>>> When the mount command without specific NFS version, nfs-utils will
>>> try to mount NFSv4 at first, but the kernel don't support, the kernel
>>> will return with error EINVAL for parsing option (vers=4) fail.
>> 
>> Maybe the kernel should return EOPNOTSUPP in that case?
> 
>  Yes, what about the following patch.

Seems logical to me.  Up to Trond...

> 
> --
> thanks
> Mi Jinlong
> ---------------------------------------------------------------------------------
> From 4065f2571362ff301683218546151e19148fa775 Mon Sep 17 00:00:00 2001
> From: Mi Jinlong <mijinlong@cn.fujitsu.com>
> Date: Sat, 30 Oct 2010 10:19:33 +0800
> Subject: [PATCH] nfs: kernel should return EPROTONOSUPPORT when not support NFSv4
> 
>  When nfs client(kernel) don't support NFSv4, maybe user build
>  kernel without NFSv4, there is a problem.
> 
>  Using command "mount SERVER-IP:/nfsv3 /mnt/" to mount NFSv3
>  filesystem, mount should should success, but fail and get error:
> 
>    "mount.nfs: an incorrect mount option was specified"
> 
>  System call mount "nfs"(not "nfs4") with "vers=4", 
>  if CONFIG_NFS_V4 is not defined, the "vers=4" will be parsed
>  as invalid argument and kernel return EINVAL to nfs-utils. 
> 
>  About that, we really want get EPROTONOSUPPORT rather than 
>  EINVAL. This path make sure kernel parses argument success,
>  and return EPROTONOSUPPORT at nfs_validate_mount_data().
> 
> Signed-off-by: Mi Jinlong <mijinlong@cn.fujitsu.com>
> ---
> fs/nfs/super.c |    4 ----
> 1 files changed, 0 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/nfs/super.c b/fs/nfs/super.c
> index 3c04504..4100630 100644
> --- a/fs/nfs/super.c
> +++ b/fs/nfs/super.c
> @@ -1069,12 +1069,10 @@ static int nfs_parse_mount_options(char *raw,
> 			mnt->flags |= NFS_MOUNT_VER3;
> 			mnt->version = 3;
> 			break;
> -#ifdef CONFIG_NFS_V4
> 		case Opt_v4:
> 			mnt->flags &= ~NFS_MOUNT_VER3;
> 			mnt->version = 4;
> 			break;
> -#endif
> 		case Opt_udp:
> 			mnt->flags &= ~NFS_MOUNT_TCP;
> 			mnt->nfs_server.protocol = XPRT_TRANSPORT_UDP;
> @@ -1286,12 +1284,10 @@ static int nfs_parse_mount_options(char *raw,
> 				mnt->flags |= NFS_MOUNT_VER3;
> 				mnt->version = 3;
> 				break;
> -#ifdef CONFIG_NFS_V4
> 			case NFS4_VERSION:
> 				mnt->flags &= ~NFS_MOUNT_VER3;
> 				mnt->version = 4;
> 				break;
> -#endif
> 			default:
> 				goto out_invalid_value;
> 			}
> -- 
> 1.7.3.2
> 
> 

-- 
Chuck Lever
chuck[dot]lever[at]oracle[dot]com





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-11-30 15:14 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-25  5:54 [PATCH] mount: make sure mount correctly when kernel not support NFSv4 Mi Jinlong
2010-11-29 14:40 ` Chuck Lever
2010-11-30  6:54   ` Mi Jinlong
2010-11-30 15:13     ` Chuck Lever

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.