[RFC] nfs-utils: mount: handle EACCES during version negotiation
diff mbox

Message ID 279c0751-8284-5289-3407-129dc9c9d3e8@redhat.com
State New
Headers show

Commit Message

Frank Sorenson Sept. 7, 2017, 3:14 p.m. UTC
mount() can return EACCES for servers which permit 4.0
but are configured not to allow 4.1  This is currently
only handled by the default case, so these mounts fail
without retrying a lower minor.

Add handling for EACCES to be retried with a lower
minor version.

Signed-off-by: Frank Sorenson <sorenson@redhat.com>
---
 utils/mount/stropts.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Steve Dickson Sept. 14, 2017, 5:11 p.m. UTC | #1
On 09/07/2017 11:14 AM, Frank Sorenson wrote:
> mount() can return EACCES for servers which permit 4.0
> but are configured not to allow 4.1  This is currently
> only handled by the default case, so these mounts fail
> without retrying a lower minor.
> 
> Add handling for EACCES to be retried with a lower
> minor version.
> 
> Signed-off-by: Frank Sorenson <sorenson@redhat.com>
Committed... 

steved.
> ---
>  utils/mount/stropts.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 1d30d34..4401314 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -862,6 +862,9 @@ check_result:
>  	case EINVAL:
>  		/* A less clear indication that our client
>  		 * does not support NFSv4 minor version. */
> +	case EACCES:
> +		/* An unclear indication that the server
> +		 * may not support NFSv4 minor version. */
>  		if (mi->version.v_mode != V_SPECIFIC) {
>  			if (mi->version.minor > 0) {
>  				mi->version.minor--;
> 
--
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

Patch
diff mbox

diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
index 1d30d34..4401314 100644
--- a/utils/mount/stropts.c
+++ b/utils/mount/stropts.c
@@ -862,6 +862,9 @@  check_result:
 	case EINVAL:
 		/* A less clear indication that our client
 		 * does not support NFSv4 minor version. */
+	case EACCES:
+		/* An unclear indication that the server
+		 * may not support NFSv4 minor version. */
 		if (mi->version.v_mode != V_SPECIFIC) {
 			if (mi->version.minor > 0) {
 				mi->version.minor--;