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.
next prev parent 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).