All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] nfs-utils: getexportent interprets -test-client- as default options
@ 2011-05-12 13:18 Ben Myers
  2011-05-16 16:12 ` Steve Dickson
  0 siblings, 1 reply; 5+ messages in thread
From: Ben Myers @ 2011-05-12 13:18 UTC (permalink / raw)
  To: steved; +Cc: neilb, linux-nfs

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;
 		


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] nfs-utils: getexportent interprets -test-client- as default options
  2011-05-12 13:18 [PATCH] nfs-utils: getexportent interprets -test-client- as default options Ben Myers
@ 2011-05-16 16:12 ` Steve Dickson
       [not found]   ` <4DD14CE9.1070301-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
  2011-05-18 11:55   ` [PATCH v2] " Ben Myers
  0 siblings, 2 replies; 5+ messages in thread
From: Steve Dickson @ 2011-05-16 16:12 UTC (permalink / raw)
  To: Ben Myers; +Cc: neilb, linux-nfs

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.






^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] nfs-utils: getexportent interprets -test-client- as default options
       [not found]   ` <4DD14CE9.1070301-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
@ 2011-05-17 14:05     ` bpm
  0 siblings, 0 replies; 5+ messages in thread
From: bpm @ 2011-05-17 14:05 UTC (permalink / raw)
  To: Steve Dickson; +Cc: neilb, linux-nfs

Hey Steve,

On Mon, May 16, 2011 at 12:12:25PM -0400, Steve Dickson wrote:
> 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.

Exactly.

> 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;
> 

Ok, I'll try that on.

Thanks,
	Ben

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] nfs-utils: getexportent interprets -test-client- as default options
  2011-05-16 16:12 ` Steve Dickson
       [not found]   ` <4DD14CE9.1070301-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
@ 2011-05-18 11:55   ` Ben Myers
  2011-05-23 12:26     ` Steve Dickson
  1 sibling, 1 reply; 5+ messages in thread
From: Ben Myers @ 2011-05-18 11:55 UTC (permalink / raw)
  To: steved; +Cc: neilb, linux-nfs

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 to process existing
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 that problem (as Steve suggested) by not processing any
default options if we are reading the list of existing exports from the
kernel.  Default options are converted to individual exports by exportfs so
the kernel won't have any regardless.

Signed-off-by: Ben Myers <bpm@sgi.com>
---
 support/nfs/exports.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/support/nfs/exports.c b/support/nfs/exports.c
index 6acb2b6..c250383 100644
--- a/support/nfs/exports.c
+++ b/support/nfs/exports.c
@@ -142,9 +142,14 @@ getexportent(int fromkernel, int fromexports)
 		return NULL;
 	}
 	first = 0;
-		
-	/* Check for default options */
-	if (exp[0] == '-') {
+
+	/*
+	 * Check for default options.  The kernel will never have default
+	 * options in /proc/fs/nfs/exports, however due to the initial '-' in
+	 * the -test-client- string from the test export we have to check that
+	 * we're not reading from the kernel.
+	 */
+	if (exp[0] == '-' && !fromkernel) {
 		if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
 			return NULL;
 		


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] nfs-utils: getexportent interprets -test-client- as default options
  2011-05-18 11:55   ` [PATCH v2] " Ben Myers
@ 2011-05-23 12:26     ` Steve Dickson
  0 siblings, 0 replies; 5+ messages in thread
From: Steve Dickson @ 2011-05-23 12:26 UTC (permalink / raw)
  To: Ben Myers; +Cc: neilb, linux-nfs



On 05/18/2011 07:55 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 to process existing
> 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 that problem (as Steve suggested) by not processing any
> default options if we are reading the list of existing exports from the
> kernel.  Default options are converted to individual exports by exportfs so
> the kernel won't have any regardless.
> 
> Signed-off-by: Ben Myers <bpm@sgi.com>
> ---
>  support/nfs/exports.c |   11 ++++++++---
>  1 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/support/nfs/exports.c b/support/nfs/exports.c
> index 6acb2b6..c250383 100644
> --- a/support/nfs/exports.c
> +++ b/support/nfs/exports.c
> @@ -142,9 +142,14 @@ getexportent(int fromkernel, int fromexports)
>  		return NULL;
>  	}
>  	first = 0;
> -		
> -	/* Check for default options */
> -	if (exp[0] == '-') {
> +
> +	/*
> +	 * Check for default options.  The kernel will never have default
> +	 * options in /proc/fs/nfs/exports, however due to the initial '-' in
> +	 * the -test-client- string from the test export we have to check that
> +	 * we're not reading from the kernel.
> +	 */
> +	if (exp[0] == '-' && !fromkernel) {
>  		if (parseopts(exp + 1, &def_ee, 0, &has_default_subtree_opts) < 0)
>  			return NULL;
>  		
> 
Committed...

steved.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-05-23 12:26 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-12 13:18 [PATCH] nfs-utils: getexportent interprets -test-client- as default options Ben Myers
2011-05-16 16:12 ` Steve Dickson
     [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

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.