Re: [PATCH] mount: Report correct error in the fall_back cases.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 5/14/19 4:04 PM, Steve Dickson wrote:
> In mount auto negotiation, a v3 mount is tried
> when the v4 fails with error that could mean
> v4 is not supported.
> 
> When the v3 mount fails, the original v4 failure
> should be used to set the errno, not the v3 failure.
> 
> Fixes:https://bugzilla.redhat.com/show_bug.cgi?id=1709961
> Signed-off-by: Steve Dickson <steved@xxxxxxxxxx>
Committed.... 

steved,
> ---
>  utils/mount/stropts.c | 15 +++++++++++++--
>  1 file changed, 13 insertions(+), 2 deletions(-)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 1bb7a73..901f995 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -889,7 +889,7 @@ out:
>   */
>  static int nfs_autonegotiate(struct nfsmount_info *mi)
>  {
> -	int result;
> +	int result, olderrno;
>  
>  	result = nfs_try_mount_v4(mi);
>  check_result:
> @@ -949,7 +949,18 @@ fall_back:
>  	if (mi->version.v_mode == V_GENERAL)
>  		/* v2,3 fallback not allowed */
>  		return result;
> -	return nfs_try_mount_v3v2(mi, FALSE);
> +
> +	/*
> +	 * Save the original errno in case the v3 
> +	 * mount fails from one of the fall_back cases. 
> +	 * Report the first failure not the v3 mount failure
> +	 */
> +	olderrno = errno;
> +	if ((result = nfs_try_mount_v3v2(mi, FALSE)))
> +		return result;
> +
> +	errno = olderrno;
> +	return result;
>  }
>  
>  /*
> 



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux