All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Dickson <SteveD@redhat.com>
To: Ben Myers <bpm@sgi.com>
Cc: neilb@suse.de, linux-nfs@vger.kernel.org
Subject: Re: [PATCH] nfs-utils: getexportent interprets -test-client- as default options
Date: Mon, 16 May 2011 12:12:25 -0400	[thread overview]
Message-ID: <4DD14CE9.1070301@RedHat.com> (raw)
In-Reply-To: <20110512131810.25028.50931.stgit@nfs3>

On 05/12/2011 09:18 AM, Ben Myers wrote:
> With commit 1374c3861abdc66f3a1410e26cc85f86760b51dd Neil added a -test-client-
> export to test the exportability of filesystems when exportfs is run.  When
> using the old cache controls (i.e. /proc/fs/nfsd is not mounted) exportfs will
> read /proc/fs/nfs/exports and find these test client entries.  The dash at the
> beginning of -test-client- will be cause getexportent to look for default
> options in the rest of the string, which test-client- will not match:
> 
> exportfs: /proc/fs/nfs/exports:1: unknown keyword "test-client-(rw"
> 
> This patch resolves the problem by testing for -test-client- string in the
> check for default arguments.
> 
> Signed-off-by: Ben Myers <bpm@sgi.com>
> ---
>  support/nfs/exports.c |    9 ++++++---
>  1 files changed, 6 insertions(+), 3 deletions(-)
> 
> diff --git a/support/nfs/exports.c b/support/nfs/exports.c
> index 6acb2b6..7e29155 100644
> --- a/support/nfs/exports.c
> +++ b/support/nfs/exports.c
> @@ -142,9 +142,12 @@ getexportent(int fromkernel, int fromexports)
>  		return NULL;
>  	}
>  	first = 0;
> -		
> -	/* Check for default options */
> -	if (exp[0] == '-') {
> +
> +	/*
> +	 * Check for default options.  The test client string does not indicate
> +	 * default arguments.
> +	 */
> +	if (exp[0] == '-' && strncmp(exp, "-test-client-", 13) != 0) {
>  		if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
>  			return NULL;
If I'm understanding you correctly, when using the old cache controls
and when processing exports that are already exported (exports that 
are in /proc/fs/nfs/exports) will cause this problem.

If this indeed is the case, I think it's a bit cleaner if we
use the 'fromkernel' argument to decide if the '-' options
should or should not be processed. Something like:

diff --git a/support/nfs/exports.c b/support/nfs/exports.c
index 6acb2b6..e4e9375 100644
--- a/support/nfs/exports.c
+++ b/support/nfs/exports.c
@@ -144,7 +144,7 @@ getexportent(int fromkernel, int fromexports)
        first = 0;
                
        /* Check for default options */
-       if (exp[0] == '-') {
+       if (exp[0] == '-' && !fromkernel) {
                if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
                        return NULL;

steved.






  reply	other threads:[~2011-05-16 16:12 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-12 13:18 [PATCH] nfs-utils: getexportent interprets -test-client- as default options Ben Myers
2011-05-16 16:12 ` Steve Dickson [this message]
     [not found]   ` <4DD14CE9.1070301-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2011-05-17 14:05     ` bpm
2011-05-18 11:55   ` [PATCH v2] " Ben Myers
2011-05-23 12:26     ` Steve Dickson

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=4DD14CE9.1070301@RedHat.com \
    --to=steved@redhat.com \
    --cc=bpm@sgi.com \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neilb@suse.de \
    /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.