linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] The beginning of the end of v2 support
@ 2013-04-12 16:05 Steve Dickson
  2013-04-12 16:05 ` [PATCH] mount: No longer negotiate to v2 Steve Dickson
  0 siblings, 1 reply; 5+ messages in thread
From: Steve Dickson @ 2013-04-12 16:05 UTC (permalink / raw)
  To: Linux NFS Mailing List

The following patch is beginning of no longer supporting
the NFS version 2 protocol. At this point there no valid 
reason outdated protocol should be used. Plus from a
support/testing stand point its really becoming a thorn.

The following patch simply disables the v2 protocol negation 
by only negotiating to v3. Setting the version on the 
command will be the only way v2 can be used... for now! 

Steve Dickson (1):
  mount: No longer negotiate to v2

 utils/mount/network.c | 13 +++++--------
 utils/mount/stropts.c |  2 ++
 2 files changed, 7 insertions(+), 8 deletions(-)

-- 
1.8.1.4


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

* [PATCH] mount: No longer negotiate to v2
  2013-04-12 16:05 [PATCH] The beginning of the end of v2 support Steve Dickson
@ 2013-04-12 16:05 ` Steve Dickson
  2013-04-12 17:00   ` Chuck Lever
  2013-04-22 17:18   ` Steve Dickson
  0 siblings, 2 replies; 5+ messages in thread
From: Steve Dickson @ 2013-04-12 16:05 UTC (permalink / raw)
  To: Linux NFS Mailing List

This patch remove the ability of negotiating to the v2
protocol. Explicitly setting the version on the command
line will be the only way to use v2.

Signed-off-by: Steve Dickson <steved@redhat.com>
---
 utils/mount/network.c | 13 +++++--------
 utils/mount/stropts.c |  2 ++
 2 files changed, 7 insertions(+), 8 deletions(-)

diff --git a/utils/mount/network.c b/utils/mount/network.c
index e7bd522..4be48cd 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -155,9 +155,8 @@ static const unsigned long probe_nfs2_only[] = {
 	0,
 };
 
-static const unsigned long probe_nfs3_first[] = {
+static const unsigned long probe_nfs3_only[] = {
 	3,
-	2,
 	0,
 };
 
@@ -167,10 +166,8 @@ static const unsigned long probe_mnt1_first[] = {
 	0,
 };
 
-static const unsigned long probe_mnt3_first[] = {
+static const unsigned long probe_mnt3_only[] = {
 	3,
-	1,
-	2,
 	0,
 };
 
@@ -626,7 +623,7 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen,
 		probe_proto = nfs_default_proto();
 
 		return nfs_probe_port(sap, salen, pmap,
-					probe_nfs3_first, probe_proto);
+					probe_nfs3_only, probe_proto);
 	} else
 		return nfs_probe_port(sap, salen, pmap,
 					probe_nfs2_only, probe_udp_only);
@@ -653,7 +650,7 @@ static int nfs_probe_mntport(const struct sockaddr *sap, const socklen_t salen,
 
 	if (nfs_mount_data_version >= 4)
 		return nfs_probe_port(sap, salen, pmap,
-					probe_mnt3_first, probe_udp_first);
+					probe_mnt3_only, probe_udp_first);
 	else
 		return nfs_probe_port(sap, salen, pmap,
 					probe_mnt1_first, probe_udp_only);
@@ -717,7 +714,7 @@ int nfs_probe_bothports(const struct sockaddr *mnt_saddr,
 	memcpy(&save_nfs, nfs_pmap, sizeof(save_nfs));
 	memcpy(&save_mnt, mnt_pmap, sizeof(save_mnt));
 	probe_vers = (nfs_mount_data_version >= 4) ?
-			probe_mnt3_first : probe_mnt1_first;
+			probe_mnt3_only : probe_mnt1_first;
 
 	for (; *probe_vers; probe_vers++) {
 		nfs_pmap->pm_vers = mntvers_to_nfs(*probe_vers);
diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 8ee3024..1dc38ef 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -542,6 +542,8 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
 			errno = EACCES;
 		else if (rpc_createerr.cf_stat == RPC_TIMEDOUT)
 			errno = ETIMEDOUT;
+		else if (rpc_createerr.cf_stat == RPC_PROGVERSMISMATCH)
+			errno = EPROTONOSUPPORT;
 		else if (rpc_createerr.cf_error.re_errno != 0)
 			errno = rpc_createerr.cf_error.re_errno;
 		return 0;
-- 
1.8.1.4


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

* Re: [PATCH] mount: No longer negotiate to v2
  2013-04-12 16:05 ` [PATCH] mount: No longer negotiate to v2 Steve Dickson
@ 2013-04-12 17:00   ` Chuck Lever
  2013-04-12 19:05     ` Steve Dickson
  2013-04-22 17:18   ` Steve Dickson
  1 sibling, 1 reply; 5+ messages in thread
From: Chuck Lever @ 2013-04-12 17:00 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List


On Apr 12, 2013, at 12:05 PM, Steve Dickson <steved@redhat.com> wrote:

> This patch remove the ability of negotiating to the v2
> protocol. Explicitly setting the version on the command
> line will be the only way to use v2.

Just curious: is there a way to do this using the mount configuration file?


> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
> utils/mount/network.c | 13 +++++--------
> utils/mount/stropts.c |  2 ++
> 2 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index e7bd522..4be48cd 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -155,9 +155,8 @@ static const unsigned long probe_nfs2_only[] = {
> 	0,
> };
> 
> -static const unsigned long probe_nfs3_first[] = {
> +static const unsigned long probe_nfs3_only[] = {
> 	3,
> -	2,
> 	0,
> };
> 
> @@ -167,10 +166,8 @@ static const unsigned long probe_mnt1_first[] = {
> 	0,
> };
> 
> -static const unsigned long probe_mnt3_first[] = {
> +static const unsigned long probe_mnt3_only[] = {
> 	3,
> -	1,
> -	2,
> 	0,
> };
> 
> @@ -626,7 +623,7 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen,
> 		probe_proto = nfs_default_proto();
> 
> 		return nfs_probe_port(sap, salen, pmap,
> -					probe_nfs3_first, probe_proto);
> +					probe_nfs3_only, probe_proto);
> 	} else
> 		return nfs_probe_port(sap, salen, pmap,
> 					probe_nfs2_only, probe_udp_only);
> @@ -653,7 +650,7 @@ static int nfs_probe_mntport(const struct sockaddr *sap, const socklen_t salen,
> 
> 	if (nfs_mount_data_version >= 4)
> 		return nfs_probe_port(sap, salen, pmap,
> -					probe_mnt3_first, probe_udp_first);
> +					probe_mnt3_only, probe_udp_first);
> 	else
> 		return nfs_probe_port(sap, salen, pmap,
> 					probe_mnt1_first, probe_udp_only);
> @@ -717,7 +714,7 @@ int nfs_probe_bothports(const struct sockaddr *mnt_saddr,
> 	memcpy(&save_nfs, nfs_pmap, sizeof(save_nfs));
> 	memcpy(&save_mnt, mnt_pmap, sizeof(save_mnt));
> 	probe_vers = (nfs_mount_data_version >= 4) ?
> -			probe_mnt3_first : probe_mnt1_first;
> +			probe_mnt3_only : probe_mnt1_first;
> 
> 	for (; *probe_vers; probe_vers++) {
> 		nfs_pmap->pm_vers = mntvers_to_nfs(*probe_vers);
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 8ee3024..1dc38ef 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -542,6 +542,8 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
> 			errno = EACCES;
> 		else if (rpc_createerr.cf_stat == RPC_TIMEDOUT)
> 			errno = ETIMEDOUT;
> +		else if (rpc_createerr.cf_stat == RPC_PROGVERSMISMATCH)
> +			errno = EPROTONOSUPPORT;
> 		else if (rpc_createerr.cf_error.re_errno != 0)
> 			errno = rpc_createerr.cf_error.re_errno;
> 		return 0;
> -- 
> 1.8.1.4
> 
> --
> 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] 5+ messages in thread

* Re: [PATCH] mount: No longer negotiate to v2
  2013-04-12 17:00   ` Chuck Lever
@ 2013-04-12 19:05     ` Steve Dickson
  0 siblings, 0 replies; 5+ messages in thread
From: Steve Dickson @ 2013-04-12 19:05 UTC (permalink / raw)
  To: Chuck Lever; +Cc: Linux NFS Mailing List



On 12/04/13 13:00, Chuck Lever wrote:
> On Apr 12, 2013, at 12:05 PM, Steve Dickson <steved@redhat.com> wrote:
> 
>> > This patch remove the ability of negotiating to the v2
>> > protocol. Explicitly setting the version on the command
>> > line will be the only way to use v2.
> Just curious: is there a way to do this using the mount configuration file?
No. One can set the Nfsvers=2 for legacy servers if need be, but there is no
mount option that controls the how the protocols are negotiated.

steved.


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

* Re: [PATCH] mount: No longer negotiate to v2
  2013-04-12 16:05 ` [PATCH] mount: No longer negotiate to v2 Steve Dickson
  2013-04-12 17:00   ` Chuck Lever
@ 2013-04-22 17:18   ` Steve Dickson
  1 sibling, 0 replies; 5+ messages in thread
From: Steve Dickson @ 2013-04-22 17:18 UTC (permalink / raw)
  To: Steve Dickson; +Cc: Linux NFS Mailing List



On 12/04/13 12:05, Steve Dickson wrote:
> This patch remove the ability of negotiating to the v2
> protocol. Explicitly setting the version on the command
> line will be the only way to use v2.
> 
> Signed-off-by: Steve Dickson <steved@redhat.com>
Committed..

steved.
> ---
>  utils/mount/network.c | 13 +++++--------
>  utils/mount/stropts.c |  2 ++
>  2 files changed, 7 insertions(+), 8 deletions(-)
> 
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index e7bd522..4be48cd 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -155,9 +155,8 @@ static const unsigned long probe_nfs2_only[] = {
>  	0,
>  };
>  
> -static const unsigned long probe_nfs3_first[] = {
> +static const unsigned long probe_nfs3_only[] = {
>  	3,
> -	2,
>  	0,
>  };
>  
> @@ -167,10 +166,8 @@ static const unsigned long probe_mnt1_first[] = {
>  	0,
>  };
>  
> -static const unsigned long probe_mnt3_first[] = {
> +static const unsigned long probe_mnt3_only[] = {
>  	3,
> -	1,
> -	2,
>  	0,
>  };
>  
> @@ -626,7 +623,7 @@ static int nfs_probe_nfsport(const struct sockaddr *sap, const socklen_t salen,
>  		probe_proto = nfs_default_proto();
>  
>  		return nfs_probe_port(sap, salen, pmap,
> -					probe_nfs3_first, probe_proto);
> +					probe_nfs3_only, probe_proto);
>  	} else
>  		return nfs_probe_port(sap, salen, pmap,
>  					probe_nfs2_only, probe_udp_only);
> @@ -653,7 +650,7 @@ static int nfs_probe_mntport(const struct sockaddr *sap, const socklen_t salen,
>  
>  	if (nfs_mount_data_version >= 4)
>  		return nfs_probe_port(sap, salen, pmap,
> -					probe_mnt3_first, probe_udp_first);
> +					probe_mnt3_only, probe_udp_first);
>  	else
>  		return nfs_probe_port(sap, salen, pmap,
>  					probe_mnt1_first, probe_udp_only);
> @@ -717,7 +714,7 @@ int nfs_probe_bothports(const struct sockaddr *mnt_saddr,
>  	memcpy(&save_nfs, nfs_pmap, sizeof(save_nfs));
>  	memcpy(&save_mnt, mnt_pmap, sizeof(save_mnt));
>  	probe_vers = (nfs_mount_data_version >= 4) ?
> -			probe_mnt3_first : probe_mnt1_first;
> +			probe_mnt3_only : probe_mnt1_first;
>  
>  	for (; *probe_vers; probe_vers++) {
>  		nfs_pmap->pm_vers = mntvers_to_nfs(*probe_vers);
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 8ee3024..1dc38ef 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -542,6 +542,8 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
>  			errno = EACCES;
>  		else if (rpc_createerr.cf_stat == RPC_TIMEDOUT)
>  			errno = ETIMEDOUT;
> +		else if (rpc_createerr.cf_stat == RPC_PROGVERSMISMATCH)
> +			errno = EPROTONOSUPPORT;
>  		else if (rpc_createerr.cf_error.re_errno != 0)
>  			errno = rpc_createerr.cf_error.re_errno;
>  		return 0;
> 

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

end of thread, other threads:[~2013-04-22 17:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-12 16:05 [PATCH] The beginning of the end of v2 support Steve Dickson
2013-04-12 16:05 ` [PATCH] mount: No longer negotiate to v2 Steve Dickson
2013-04-12 17:00   ` Chuck Lever
2013-04-12 19:05     ` Steve Dickson
2013-04-22 17:18   ` Steve Dickson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).