Re: [PATCH 1/4] text-based mount: Retry when server can't be reached

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

 



On Fri, 22 Jan 2010 16:06:21 -0500
Chuck Lever <chuck.lever@xxxxxxxxxx> wrote:

> We want new default behavior from mount.nfs when the server refuses a
> connection.  Since connection refusal can be spurious (for example,
> if the server is rebooting), mount.nfs should retry.
> 
> NFS shares that are automatically mounted by /etc/fstab at boot
> time may be problematic.  The new behavior can be disabled by
> specifying the "retry=0" mount option, or these mounts can be changed
> to background mounts by specifying the "bg" option.
> 
> A kernel code change is still required for the mount(2) system call to
> return ECONNREFUSED for NFSv4 mounts (see 2.6.33).  For v2/v3, the
> version and transport negotiation logic in mount.nfs should drive a
> retry if the server's rpcbind can't be reached.
> 
> Note that if a v2/v3 mount request encounters an unregistered NFS
> service, it will still fail immediately.  That wouldn't be too hard
> to change as well, but there are many more corner cases there where
> failing immediately is appropriate.
> 
> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
> ---
> 
>  utils/mount/nfs.man   |    6 +++++-
>  utils/mount/stropts.c |    4 ++++
>  2 files changed, 9 insertions(+), 1 deletions(-)
> 
> diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
> index 93bd642..c64de5f 100644
> --- a/utils/mount/nfs.man
> +++ b/utils/mount/nfs.man
> @@ -363,7 +363,11 @@ The number of minutes that the
>  command retries an NFS mount operation
>  in the foreground or background before giving up.
>  If this option is not specified, the default value for foreground mounts
> -is 2 minutes, and the default value for background mounts is 10000 minutes (80 minutes shy of one week).
> +is 2 minutes, and the default value for background mounts is 10000 minutes
> +(80 minutes shy of one week).
> +If a value of zero is specified, the
> +.BR mount (8)
> +command exits immediately after the first failure.
>  .TP 1.5i
>  .BI sec= mode
>  The RPCGSS security flavor to use for accessing files on this mount point.
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index 57a4b32..74224ff 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -515,6 +515,10 @@ nfs_rewrite_pmap_mount_options(struct mount_options *options)
>  	if (!nfs_probe_bothports(mnt_saddr, mnt_salen, &mnt_pmap,
>  				 nfs_saddr, nfs_salen, &nfs_pmap)) {
>  		errno = ESPIPE;
> +		if (rpc_createerr.cf_stat == RPC_PROGNOTREGISTERED)
> +			errno = EOPNOTSUPP;
> +		else if (rpc_createerr.cf_error.re_errno != 0)
> +			errno = rpc_createerr.cf_error.re_errno;
>  		return 0;
>  	}
>  
> 


Apologies for the long delay in testing these. I gave the most recent
set of these in your git tree some testing this morning and they seem
to do the right thing.

I've also posted a patch this morning that's similar to the one
currently in Fedora to make the Defaultproto= option affect the address
family selection as well. I see that as complimentary to this set, and
it seems to work properly in conjunction with it.

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[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