All of lore.kernel.org
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Steve Dickson <steved@redhat.com>
Cc: Linux NFS Mailing list <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH] mount.nfs: background mount now do directly into background
Date: Mon, 10 Mar 2014 10:18:16 +1100	[thread overview]
Message-ID: <20140310101816.17e7d98a@notabene.brown> (raw)
In-Reply-To: <1394284964-12997-1-git-send-email-steved@redhat.com>

[-- Attachment #1: Type: text/plain, Size: 2549 bytes --]

On Sat,  8 Mar 2014 08:22:44 -0500 Steve Dickson <steved@redhat.com> wrote:

> Modern day kernel will no longer return all timeout
> errors instead the process spins endlessly in the kernel.
> This behavior will cause the foreground mount to hang, never
> allowing the mount to go into background.
> 
> So this patch eliminates the foreground mount cause
> background mounts to go directly into background
> 
> Signed-off-by: Steve Dickson <steved@redhat.com>

Did NFS mounts *ever* time out (when 'soft' isn't given)?

If so, there is probably a regression which maybe should be fixed.

If not, then this has always been a bug since sting-options were introduced
and the kernel started doing the mountd filehandle lookup...

So I'm probably OK with the patch but I wonder if there is more of a story
behind this that we should be sure we understand...

Thanks,
NeilBrown


> ---
>  utils/mount/stropts.c |   31 ++++++++-----------------------
>  1 files changed, 8 insertions(+), 23 deletions(-)
> 
> diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c
> index a642394..92a7245 100644
> --- a/utils/mount/stropts.c
> +++ b/utils/mount/stropts.c
> @@ -913,28 +913,6 @@ static int nfsmount_fg(struct nfsmount_info *mi)
>  }
>  
>  /*
> - * Handle "background" NFS mount [first try]
> - *
> - * Returns a valid mount command exit code.
> - *
> - * EX_BG should cause the caller to fork and invoke nfsmount_child.
> - */
> -static int nfsmount_parent(struct nfsmount_info *mi)
> -{
> -	if (nfs_try_mount(mi))
> -		return EX_SUCCESS;
> -
> -	/* retry background mounts when the server is not up */
> -	if (nfs_is_permanent_error(errno) && errno != EOPNOTSUPP) {
> -		mount_error(mi->spec, mi->node, errno);
> -		return EX_FAIL;
> -	}
> -
> -	sys_mount_errors(mi->hostname, errno, 1, 1);
> -	return EX_BG;
> -}
> -
> -/*
>   * Handle "background" NFS mount [retry daemon]
>   *
>   * Returns a valid mount command exit code: EX_SUCCESS if successful,
> @@ -982,7 +960,14 @@ static int nfsmount_child(struct nfsmount_info *mi)
>  static int nfsmount_bg(struct nfsmount_info *mi)
>  {
>  	if (!mi->child)
> -		return nfsmount_parent(mi);
> +		/* 
> +		 * Modern day kernels no longer return all 
> +		 * timeouts errors in all cases, instead 
> +		 * the process spins in the kernel, which 
> +		 * will hang a foreground mount. So background
> +		 * mounts have to go directly into background
> +		 */
> +		return EX_BG;
>  	else
>  		return nfsmount_child(mi);
>  }


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  reply	other threads:[~2014-03-09 23:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-08 13:22 [PATCH] mount.nfs: background mount now do directly into background Steve Dickson
2014-03-09 23:18 ` NeilBrown [this message]
2014-03-09 23:43   ` NeilBrown
2014-03-10 15:14     ` Steve Dickson
2014-03-11 21:13 ` Trond Myklebust
2014-03-11 22:56   ` Steve Dickson
2014-03-11 23:04     ` Trond Myklebust

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140310101816.17e7d98a@notabene.brown \
    --to=neilb@suse.de \
    --cc=linux-nfs@vger.kernel.org \
    --cc=steved@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.