* [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
@ 2011-09-17 15:17 Steve Dickson
2011-09-17 15:17 ` [PATCH 2/2] configure.ac: Remove unused NFS3_SUPPORTED define Steve Dickson
2011-09-17 18:36 ` [PATCH 1/2] configure.ac: Added server 4.1 support configuration option J. Bruce Fields
0 siblings, 2 replies; 12+ messages in thread
From: Steve Dickson @ 2011-09-17 15:17 UTC (permalink / raw)
To: Linux NFS Mailing List
Separate the v4.1 support in the client and server
by creating the --enable-nfsdv4 configuration option.
Signed-off-by: Steve Dickson <steved@redhat.com>
---
configure.ac | 19 ++++++++++++++++---
support/include/nfs/nfs.h | 2 +-
2 files changed, 17 insertions(+), 4 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1a28f8a..18a735d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,17 +75,30 @@ AC_ARG_ENABLE(nfsv4,
AC_ARG_ENABLE(nfsv41,
[AC_HELP_STRING([--enable-nfsv41],
- [enable support for NFSv41 @<:@default=no@:>@])],
+ [enable for NFS v4.1 client support @<:@default=yes@:>@])],
enable_nfsv41=$enableval,
- enable_nfsv41=no)
+ enable_nfsv41=yes)
if test "$enable_nfsv41" = yes; then
- AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
+ AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv4.1 client support compiled in])
else
enable_nfsv41=
fi
AC_SUBST(enable_nfsv41)
AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
+AC_ARG_ENABLE(nfsvd41,
+ [AC_HELP_STRING([--enable-nfsdv41],
+ [enable for NFS v4.1 server support @<:@default=no@:>@])],
+ enable_nfsdv41=$enableval,
+ enable_nfsvd41=no)
+ if test "$enable_nfsdv41" = yes; then
+ AC_DEFINE(NFSD41_SUPPORTED, 1, [Define this if you want NFSv4.1 server support compiled in])
+ else
+ enable_nfsdv41=
+ fi
+ AC_SUBST(enable_nfsdv41)
+ AM_CONDITIONAL(CONFIG_NFSDV41, [test "$enable_nfsdv41" = "yes"])
+
AC_ARG_ENABLE(gss,
[AC_HELP_STRING([--enable-gss],
[enable support for rpcsec_gss @<:@default=yes@:>@])],
diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
index c939d78..d06ac1f 100644
--- a/support/include/nfs/nfs.h
+++ b/support/include/nfs/nfs.h
@@ -16,7 +16,7 @@
#define NFSD_MAXVERS 4
#define NFSD_MINMINORVERS4 1
-#ifdef NFS41_SUPPORTED
+#ifdef NFSD41_SUPPORTED
#define NFSD_MAXMINORVERS4 1
#else
#define NFSD_MAXMINORVERS4 0
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH 2/2] configure.ac: Remove unused NFS3_SUPPORTED define
2011-09-17 15:17 [PATCH 1/2] configure.ac: Added server 4.1 support configuration option Steve Dickson
@ 2011-09-17 15:17 ` Steve Dickson
2011-09-17 18:36 ` [PATCH 1/2] configure.ac: Added server 4.1 support configuration option J. Bruce Fields
1 sibling, 0 replies; 12+ messages in thread
From: Steve Dickson @ 2011-09-17 15:17 UTC (permalink / raw)
To: Linux NFS Mailing List
This configuration option is not used. So remove
it for now then possibly added it back when
V3 supported is disabled.
Signed-off-by: Steve Dickson <steved@redhat.com>
---
configure.ac | 12 +-----------
1 files changed, 1 insertions(+), 11 deletions(-)
diff --git a/configure.ac b/configure.ac
index 18a735d..07a25ad 100644
--- a/configure.ac
+++ b/configure.ac
@@ -46,17 +46,7 @@ AC_ARG_WITH(start-statd,
)
AC_SUBST(startstatd)
AC_DEFINE_UNQUOTED(START_STATD, "$startstatd", [Define this to a script which can start statd on mount])
-AC_ARG_ENABLE(nfsv3,
- [AC_HELP_STRING([--enable-nfsv3],
- [enable support for NFSv3 @<:@default=yes@:>@])],
- enable_nfsv3=$enableval,
- enable_nfsv3=yes)
- if test "$enable_nfsv3" = yes; then
- AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
- else
- enable_nfsv3=
- fi
- AC_SUBST(enable_nfsv3)
+
AC_ARG_ENABLE(nfsv4,
[AC_HELP_STRING([--enable-nfsv4],
[enable support for NFSv4 @<:@default=yes@:>@])],
--
1.7.6
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-17 15:17 [PATCH 1/2] configure.ac: Added server 4.1 support configuration option Steve Dickson
2011-09-17 15:17 ` [PATCH 2/2] configure.ac: Remove unused NFS3_SUPPORTED define Steve Dickson
@ 2011-09-17 18:36 ` J. Bruce Fields
2011-09-19 9:51 ` Steve Dickson
1 sibling, 1 reply; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-17 18:36 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Sat, Sep 17, 2011 at 11:17:01AM -0400, Steve Dickson wrote:
> Separate the v4.1 support in the client and server
> by creating the --enable-nfsdv4 configuration option.
I really dislike --enable-nfsdv4: people shouldn't have to rebuild
nfs-utils in order to turn on server 4.1 support. They should be able
to do that at run time.
It makes sense for something like the block client, because there we
actually have to decide whether to *build* something or not, and if
someone knows they're never going to use that daemon, maybe they don't
want to bother building and installing it.
For server 4.1 support, we're making them rebuild just to change the
value of a single constant. Why?
--b.
>
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
> configure.ac | 19 ++++++++++++++++---
> support/include/nfs/nfs.h | 2 +-
> 2 files changed, 17 insertions(+), 4 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 1a28f8a..18a735d 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -75,17 +75,30 @@ AC_ARG_ENABLE(nfsv4,
>
> AC_ARG_ENABLE(nfsv41,
> [AC_HELP_STRING([--enable-nfsv41],
> - [enable support for NFSv41 @<:@default=no@:>@])],
> + [enable for NFS v4.1 client support @<:@default=yes@:>@])],
> enable_nfsv41=$enableval,
> - enable_nfsv41=no)
> + enable_nfsv41=yes)
> if test "$enable_nfsv41" = yes; then
> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> + AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv4.1 client support compiled in])
> else
> enable_nfsv41=
> fi
> AC_SUBST(enable_nfsv41)
> AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
>
> +AC_ARG_ENABLE(nfsvd41,
> + [AC_HELP_STRING([--enable-nfsdv41],
> + [enable for NFS v4.1 server support @<:@default=no@:>@])],
> + enable_nfsdv41=$enableval,
> + enable_nfsvd41=no)
> + if test "$enable_nfsdv41" = yes; then
> + AC_DEFINE(NFSD41_SUPPORTED, 1, [Define this if you want NFSv4.1 server support compiled in])
> + else
> + enable_nfsdv41=
> + fi
> + AC_SUBST(enable_nfsdv41)
> + AM_CONDITIONAL(CONFIG_NFSDV41, [test "$enable_nfsdv41" = "yes"])
> +
> AC_ARG_ENABLE(gss,
> [AC_HELP_STRING([--enable-gss],
> [enable support for rpcsec_gss @<:@default=yes@:>@])],
> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
> index c939d78..d06ac1f 100644
> --- a/support/include/nfs/nfs.h
> +++ b/support/include/nfs/nfs.h
> @@ -16,7 +16,7 @@
> #define NFSD_MAXVERS 4
>
> #define NFSD_MINMINORVERS4 1
> -#ifdef NFS41_SUPPORTED
> +#ifdef NFSD41_SUPPORTED
> #define NFSD_MAXMINORVERS4 1
> #else
> #define NFSD_MAXMINORVERS4 0
> --
> 1.7.6
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-17 18:36 ` [PATCH 1/2] configure.ac: Added server 4.1 support configuration option J. Bruce Fields
@ 2011-09-19 9:51 ` Steve Dickson
2011-09-19 13:38 ` J. Bruce Fields
0 siblings, 1 reply; 12+ messages in thread
From: Steve Dickson @ 2011-09-19 9:51 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing List
On 09/17/2011 02:36 PM, J. Bruce Fields wrote:
> On Sat, Sep 17, 2011 at 11:17:01AM -0400, Steve Dickson wrote:
>> Separate the v4.1 support in the client and server
>> by creating the --enable-nfsdv4 configuration option.
>
> I really dislike --enable-nfsdv4: people shouldn't have to rebuild
> nfs-utils in order to turn on server 4.1 support. They should be able
> to do that at run time.
>
> It makes sense for something like the block client, because there we
> actually have to decide whether to *build* something or not, and if
> someone knows they're never going to use that daemon, maybe they don't
> want to bother building and installing it.
>
> For server 4.1 support, we're making them rebuild just to change the
> value of a single constant. Why?
If I remember correctly, that's the way you wanted... We disabled
4.1 server supported this way, because the code did not conform to
the RFC. This was done back in Fed 2010.
All this patch is doing is reorganizing things so there is a
configuration option to enable/disable the 4.1 client.
Now, I agree. Enabling/disabling the 4.1 server in a more
dynamic way would be good... Is the code ready for that?
Should this constraint be remove completely?
steved.
>
> --b.
>
>>
>> Signed-off-by: Steve Dickson <steved@redhat.com>
>> ---
>> configure.ac | 19 ++++++++++++++++---
>> support/include/nfs/nfs.h | 2 +-
>> 2 files changed, 17 insertions(+), 4 deletions(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 1a28f8a..18a735d 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -75,17 +75,30 @@ AC_ARG_ENABLE(nfsv4,
>>
>> AC_ARG_ENABLE(nfsv41,
>> [AC_HELP_STRING([--enable-nfsv41],
>> - [enable support for NFSv41 @<:@default=no@:>@])],
>> + [enable for NFS v4.1 client support @<:@default=yes@:>@])],
>> enable_nfsv41=$enableval,
>> - enable_nfsv41=no)
>> + enable_nfsv41=yes)
>> if test "$enable_nfsv41" = yes; then
>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
>> + AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv4.1 client support compiled in])
>> else
>> enable_nfsv41=
>> fi
>> AC_SUBST(enable_nfsv41)
>> AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
>>
>> +AC_ARG_ENABLE(nfsvd41,
>> + [AC_HELP_STRING([--enable-nfsdv41],
>> + [enable for NFS v4.1 server support @<:@default=no@:>@])],
>> + enable_nfsdv41=$enableval,
>> + enable_nfsvd41=no)
>> + if test "$enable_nfsdv41" = yes; then
>> + AC_DEFINE(NFSD41_SUPPORTED, 1, [Define this if you want NFSv4.1 server support compiled in])
>> + else
>> + enable_nfsdv41=
>> + fi
>> + AC_SUBST(enable_nfsdv41)
>> + AM_CONDITIONAL(CONFIG_NFSDV41, [test "$enable_nfsdv41" = "yes"])
>> +
>> AC_ARG_ENABLE(gss,
>> [AC_HELP_STRING([--enable-gss],
>> [enable support for rpcsec_gss @<:@default=yes@:>@])],
>> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
>> index c939d78..d06ac1f 100644
>> --- a/support/include/nfs/nfs.h
>> +++ b/support/include/nfs/nfs.h
>> @@ -16,7 +16,7 @@
>> #define NFSD_MAXVERS 4
>>
>> #define NFSD_MINMINORVERS4 1
>> -#ifdef NFS41_SUPPORTED
>> +#ifdef NFSD41_SUPPORTED
>> #define NFSD_MAXMINORVERS4 1
>> #else
>> #define NFSD_MAXMINORVERS4 0
>> --
>> 1.7.6
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 9:51 ` Steve Dickson
@ 2011-09-19 13:38 ` J. Bruce Fields
2011-09-19 14:20 ` Steve Dickson
0 siblings, 1 reply; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-19 13:38 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Mon, Sep 19, 2011 at 05:51:51AM -0400, Steve Dickson wrote:
>
>
> On 09/17/2011 02:36 PM, J. Bruce Fields wrote:
> > On Sat, Sep 17, 2011 at 11:17:01AM -0400, Steve Dickson wrote:
> >> Separate the v4.1 support in the client and server
> >> by creating the --enable-nfsdv4 configuration option.
> >
> > I really dislike --enable-nfsdv4: people shouldn't have to rebuild
> > nfs-utils in order to turn on server 4.1 support. They should be able
> > to do that at run time.
> >
> > It makes sense for something like the block client, because there we
> > actually have to decide whether to *build* something or not, and if
> > someone knows they're never going to use that daemon, maybe they don't
> > want to bother building and installing it.
> >
> > For server 4.1 support, we're making them rebuild just to change the
> > value of a single constant. Why?
> If I remember correctly, that's the way you wanted... We disabled
> 4.1 server supported this way, because the code did not conform to
> the RFC. This was done back in Fed 2010.
>
> All this patch is doing is reorganizing things so there is a
> configuration option to enable/disable the 4.1 client.
>
> Now, I agree. Enabling/disabling the 4.1 server in a more
> dynamic way would be good... Is the code ready for that?
> Should this constraint be remove completely?
We still don't want it on by default. But that's no reason to force
early adopters to recompile nfs-utils just to turn it on.
So how about something like this? (Untested.)
--b.
commit 3df526795eed38b27fecb51775c039b7eaeed088
Author: J. Bruce Fields <bfields@citi.umich.edu>
Date: Thu Dec 17 17:11:54 2009 -0500
nfsd: allow choosing server 41 support at runtime
Provide an enable-41 option to rpc.nfsd to turn on experimental 4.1
support in the server. (Current kernels have 41 off by default until
basic 41 support is finished, so this option is intended only for people
that know what they're doing.)
Note once 4.1 defaults to on, this option will become unnecessary (and
can probably just be dropped from nfs-utils), and only the -N 4.1 option
will be necessary, for those that want to turn 4.1 off for some reason.
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
diff --git a/configure.ac b/configure.ac
index 1a28f8a..7000324 100644
--- a/configure.ac
+++ b/configure.ac
@@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
AC_SUBST(enable_nfsv4)
AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
-AC_ARG_ENABLE(nfsv41,
- [AC_HELP_STRING([--enable-nfsv41],
- [enable support for NFSv41 @<:@default=no@:>@])],
- enable_nfsv41=$enableval,
- enable_nfsv41=no)
- if test "$enable_nfsv41" = yes; then
- AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
- else
- enable_nfsv41=
- fi
- AC_SUBST(enable_nfsv41)
- AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
-
AC_ARG_ENABLE(gss,
[AC_HELP_STRING([--enable-gss],
[enable support for rpcsec_gss @<:@default=yes@:>@])],
diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
index c939d78..320880e 100644
--- a/support/include/nfs/nfs.h
+++ b/support/include/nfs/nfs.h
@@ -15,13 +15,6 @@
#define NFSD_MINVERS 2
#define NFSD_MAXVERS 4
-#define NFSD_MINMINORVERS4 1
-#ifdef NFS41_SUPPORTED
-#define NFSD_MAXMINORVERS4 1
-#else
-#define NFSD_MAXMINORVERS4 0
-#endif
-
struct nfs_fh_len {
int fh_size;
u_int8_t fh_handle[NFS3_FHSIZE];
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index e7e1470..fa9c429 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -40,6 +40,7 @@ static struct option longopts[] =
{ "port", 1, 0, 'p' },
{ "debug", 0, 0, 'd' },
{ "syslog", 0, 0, 's' },
+ { "enable-41", 0, 0, 'X' },
{ NULL, 0, 0, 0 }
};
@@ -94,7 +95,7 @@ main(int argc, char **argv)
char *p, *progname, *port;
char *haddr = NULL;
int socket_up = 0;
- int minorvers4 = NFSD_MAXMINORVERS4; /* nfsv4 minor version */
+ int minorvers41 = 0; /* nfsv4 minor version */
unsigned int versbits = NFSCTL_ALLBITS;
unsigned int protobits = NFSCTL_ALLBITS;
unsigned int proto4 = 0;
@@ -154,7 +155,12 @@ main(int argc, char **argv)
switch((c = strtol(optarg, &p, 0))) {
case 4:
if (*p == '.') {
- minorvers4 = -atoi(p + 1);
+ int i = atoi(p+1);
+ if (i != 1) {
+ fprintf(stderr, "%s: unsupported minor version\n", optarg);
+ exit(1);
+ }
+ minorvers41 = -1;
break;
}
case 3:
@@ -176,6 +182,9 @@ main(int argc, char **argv)
case 'U':
NFSCTL_UDPUNSET(protobits);
break;
+ case 'X':
+ minorvers41 = 1;
+ break;
default:
fprintf(stderr, "Invalid argument: '%c'\n", c);
case 'h':
@@ -251,7 +260,7 @@ main(int argc, char **argv)
* registered with rpcbind. Note that on older kernels w/o the right
* interfaces, these are a no-op.
*/
- nfssvc_setvers(versbits, minorvers4);
+ nfssvc_setvers(versbits, minorvers41);
error = nfssvc_set_sockets(AF_INET, proto4, haddr, port);
if (!error)
@@ -303,7 +312,7 @@ static void
usage(const char *prog)
{
fprintf(stderr, "Usage:\n"
- "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version ] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] nrservs\n",
+ "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version ] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] [--enable-41] nrservs\n",
prog);
exit(2);
}
diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
index f607214..683008e 100644
--- a/utils/nfsd/nfssvc.c
+++ b/utils/nfsd/nfssvc.c
@@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits,
}
void
-nfssvc_setvers(unsigned int ctlbits, int minorvers4)
+nfssvc_setvers(unsigned int ctlbits, int minorvers41)
{
int fd, n, off;
char *ptr;
@@ -280,11 +280,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers4)
if (fd < 0)
return;
- n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
- if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
- off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d ",
- minorvers4 > 0 ? '+' : '-',
- n);
+ if (minorvers41)
+ off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1",
+ minorvers41 > 0 ? '+' : '-');
for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
if (NFSCTL_VERISSET(ctlbits, n))
off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 13:38 ` J. Bruce Fields
@ 2011-09-19 14:20 ` Steve Dickson
2011-09-19 14:35 ` J. Bruce Fields
0 siblings, 1 reply; 12+ messages in thread
From: Steve Dickson @ 2011-09-19 14:20 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing List
On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
> On Mon, Sep 19, 2011 at 05:51:51AM -0400, Steve Dickson wrote:
>>
>>
>> On 09/17/2011 02:36 PM, J. Bruce Fields wrote:
>>> On Sat, Sep 17, 2011 at 11:17:01AM -0400, Steve Dickson wrote:
>>>> Separate the v4.1 support in the client and server
>>>> by creating the --enable-nfsdv4 configuration option.
>>>
>>> I really dislike --enable-nfsdv4: people shouldn't have to rebuild
>>> nfs-utils in order to turn on server 4.1 support. They should be able
>>> to do that at run time.
>>>
>>> It makes sense for something like the block client, because there we
>>> actually have to decide whether to *build* something or not, and if
>>> someone knows they're never going to use that daemon, maybe they don't
>>> want to bother building and installing it.
>>>
>>> For server 4.1 support, we're making them rebuild just to change the
>>> value of a single constant. Why?
>> If I remember correctly, that's the way you wanted... We disabled
>> 4.1 server supported this way, because the code did not conform to
>> the RFC. This was done back in Fed 2010.
>>
>> All this patch is doing is reorganizing things so there is a
>> configuration option to enable/disable the 4.1 client.
>>
>> Now, I agree. Enabling/disabling the 4.1 server in a more
>> dynamic way would be good... Is the code ready for that?
>> Should this constraint be remove completely?
>
> We still don't want it on by default. But that's no reason to force
> early adopters to recompile nfs-utils just to turn it on.
Fine...
>
> So how about something like this? (Untested.)
>
> --b.
>
> commit 3df526795eed38b27fecb51775c039b7eaeed088
> Author: J. Bruce Fields <bfields@citi.umich.edu>
> Date: Thu Dec 17 17:11:54 2009 -0500
>
> nfsd: allow choosing server 41 support at runtime
>
> Provide an enable-41 option to rpc.nfsd to turn on experimental 4.1
> support in the server. (Current kernels have 41 off by default until
> basic 41 support is finished, so this option is intended only for people
> that know what they're doing.)
>
> Note once 4.1 defaults to on, this option will become unnecessary (and
> can probably just be dropped from nfs-utils), and only the -N 4.1 option
> will be necessary, for those that want to turn 4.1 off for some reason.
>
> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
>
> diff --git a/configure.ac b/configure.ac
> index 1a28f8a..7000324 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
> AC_SUBST(enable_nfsv4)
> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
>
> -AC_ARG_ENABLE(nfsv41,
> - [AC_HELP_STRING([--enable-nfsv41],
> - [enable support for NFSv41 @<:@default=no@:>@])],
> - enable_nfsv41=$enableval,
> - enable_nfsv41=no)
> - if test "$enable_nfsv41" = yes; then
> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> - else
> - enable_nfsv41=
> - fi
> - AC_SUBST(enable_nfsv41)
> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
> -
I think we still need this for the 4.1 client code.
> AC_ARG_ENABLE(gss,
> [AC_HELP_STRING([--enable-gss],
> [enable support for rpcsec_gss @<:@default=yes@:>@])],
> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
> index c939d78..320880e 100644
> --- a/support/include/nfs/nfs.h
> +++ b/support/include/nfs/nfs.h
> @@ -15,13 +15,6 @@
> #define NFSD_MINVERS 2
> #define NFSD_MAXVERS 4
>
> -#define NFSD_MINMINORVERS4 1
> -#ifdef NFS41_SUPPORTED
> -#define NFSD_MAXMINORVERS4 1
> -#else
> -#define NFSD_MAXMINORVERS4 0
> -#endif
> -
> struct nfs_fh_len {
> int fh_size;
> u_int8_t fh_handle[NFS3_FHSIZE];
> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> index e7e1470..fa9c429 100644
> --- a/utils/nfsd/nfsd.c
> +++ b/utils/nfsd/nfsd.c
> @@ -40,6 +40,7 @@ static struct option longopts[] =
> { "port", 1, 0, 'p' },
> { "debug", 0, 0, 'd' },
> { "syslog", 0, 0, 's' },
> + { "enable-41", 0, 0, 'X' },
> { NULL, 0, 0, 0 }
> };
Introducing temporary, undocumented command line arguments
is generally not a good thing... IMHO... I was think more
of an echo to /proc/fs/nfsd/versions to enable the support.
steved.
>
> @@ -94,7 +95,7 @@ main(int argc, char **argv)
> char *p, *progname, *port;
> char *haddr = NULL;
> int socket_up = 0;
> - int minorvers4 = NFSD_MAXMINORVERS4; /* nfsv4 minor version */
> + int minorvers41 = 0; /* nfsv4 minor version */
> unsigned int versbits = NFSCTL_ALLBITS;
> unsigned int protobits = NFSCTL_ALLBITS;
> unsigned int proto4 = 0;
> @@ -154,7 +155,12 @@ main(int argc, char **argv)
> switch((c = strtol(optarg, &p, 0))) {
> case 4:
> if (*p == '.') {
> - minorvers4 = -atoi(p + 1);
> + int i = atoi(p+1);
> + if (i != 1) {
> + fprintf(stderr, "%s: unsupported minor version\n", optarg);
> + exit(1);
> + }
> + minorvers41 = -1;
> break;
> }
> case 3:
> @@ -176,6 +182,9 @@ main(int argc, char **argv)
> case 'U':
> NFSCTL_UDPUNSET(protobits);
> break;
> + case 'X':
> + minorvers41 = 1;
> + break;
> default:
> fprintf(stderr, "Invalid argument: '%c'\n", c);
> case 'h':
> @@ -251,7 +260,7 @@ main(int argc, char **argv)
> * registered with rpcbind. Note that on older kernels w/o the right
> * interfaces, these are a no-op.
> */
> - nfssvc_setvers(versbits, minorvers4);
> + nfssvc_setvers(versbits, minorvers41);
>
> error = nfssvc_set_sockets(AF_INET, proto4, haddr, port);
> if (!error)
> @@ -303,7 +312,7 @@ static void
> usage(const char *prog)
> {
> fprintf(stderr, "Usage:\n"
> - "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version ] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] nrservs\n",
> + "%s [-d|--debug] [-H hostname] [-p|-P|--port port] [-N|--no-nfs-version version ] [-s|--syslog] [-T|--no-tcp] [-U|--no-udp] [--enable-41] nrservs\n",
> prog);
> exit(2);
> }
> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
> index f607214..683008e 100644
> --- a/utils/nfsd/nfssvc.c
> +++ b/utils/nfsd/nfssvc.c
> @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits,
> }
>
> void
> -nfssvc_setvers(unsigned int ctlbits, int minorvers4)
> +nfssvc_setvers(unsigned int ctlbits, int minorvers41)
> {
> int fd, n, off;
> char *ptr;
> @@ -280,11 +280,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers4)
> if (fd < 0)
> return;
>
> - n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
> - if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
> - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d ",
> - minorvers4 > 0 ? '+' : '-',
> - n);
> + if (minorvers41)
> + off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1",
> + minorvers41 > 0 ? '+' : '-');
> for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
> if (NFSCTL_VERISSET(ctlbits, n))
> off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n);
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 14:20 ` Steve Dickson
@ 2011-09-19 14:35 ` J. Bruce Fields
2011-09-19 15:16 ` Steve Dickson
0 siblings, 1 reply; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-19 14:35 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
>
>
> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
> > diff --git a/configure.ac b/configure.ac
> > index 1a28f8a..7000324 100644
> > --- a/configure.ac
> > +++ b/configure.ac
> > @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
> > AC_SUBST(enable_nfsv4)
> > AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
> >
> > -AC_ARG_ENABLE(nfsv41,
> > - [AC_HELP_STRING([--enable-nfsv41],
> > - [enable support for NFSv41 @<:@default=no@:>@])],
> > - enable_nfsv41=$enableval,
> > - enable_nfsv41=no)
> > - if test "$enable_nfsv41" = yes; then
> > - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> > - else
> > - enable_nfsv41=
> > - fi
> > - AC_SUBST(enable_nfsv41)
> > - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
> > -
> I think we still need this for the 4.1 client code.
OK. Or I can wait and resend a patch after you've committed the changes
for the client's block daemon, if you'd prefer.
> > diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> > index e7e1470..fa9c429 100644
> > --- a/utils/nfsd/nfsd.c
> > +++ b/utils/nfsd/nfsd.c
> > @@ -40,6 +40,7 @@ static struct option longopts[] =
> > { "port", 1, 0, 'p' },
> > { "debug", 0, 0, 'd' },
> > { "syslog", 0, 0, 's' },
> > + { "enable-41", 0, 0, 'X' },
> > { NULL, 0, 0, 0 }
> > };
> Introducing temporary, undocumented command line arguments
> is generally not a good thing... IMHO... I was think more
> of an echo to /proc/fs/nfsd/versions to enable the support.
I think it's a reasonable thing to do for experimental code.
But we could do the following instead. (Warning: still untested.)
--b.
commit 8d69da4c556f8ad2d42caa3875a665761c27463e
Author: J. Bruce Fields <bfields@citi.umich.edu>
Date: Thu Dec 17 17:11:54 2009 -0500
nfsd: allow choosing server 41 support at runtime
In the case where -N 4.1 is left off the commandline, the current code
explicitly turns it on or off anyway, depending on configure options.
Instead, just leave 4.1 support alone. This allows a user to add an
"echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
Otherwise they will get the kernel's default (currently to leave 4.1
off, as long as 4.1 support is experimental).
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
index c939d78..320880e 100644
--- a/support/include/nfs/nfs.h
+++ b/support/include/nfs/nfs.h
@@ -15,13 +15,6 @@
#define NFSD_MINVERS 2
#define NFSD_MAXVERS 4
-#define NFSD_MINMINORVERS4 1
-#ifdef NFS41_SUPPORTED
-#define NFSD_MAXMINORVERS4 1
-#else
-#define NFSD_MAXMINORVERS4 0
-#endif
-
struct nfs_fh_len {
int fh_size;
u_int8_t fh_handle[NFS3_FHSIZE];
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index e7e1470..8bc5d3a 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -94,7 +94,7 @@ main(int argc, char **argv)
char *p, *progname, *port;
char *haddr = NULL;
int socket_up = 0;
- int minorvers4 = NFSD_MAXMINORVERS4; /* nfsv4 minor version */
+ int minorvers41 = 0; /* nfsv4 minor version */
unsigned int versbits = NFSCTL_ALLBITS;
unsigned int protobits = NFSCTL_ALLBITS;
unsigned int proto4 = 0;
@@ -154,7 +154,12 @@ main(int argc, char **argv)
switch((c = strtol(optarg, &p, 0))) {
case 4:
if (*p == '.') {
- minorvers4 = -atoi(p + 1);
+ int i = atoi(p+1);
+ if (i != 1) {
+ fprintf(stderr, "%s: unsupported minor version\n", optarg);
+ exit(1);
+ }
+ minorvers41 = -1;
break;
}
case 3:
@@ -251,7 +256,7 @@ main(int argc, char **argv)
* registered with rpcbind. Note that on older kernels w/o the right
* interfaces, these are a no-op.
*/
- nfssvc_setvers(versbits, minorvers4);
+ nfssvc_setvers(versbits, minorvers41);
error = nfssvc_set_sockets(AF_INET, proto4, haddr, port);
if (!error)
diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
index f607214..683008e 100644
--- a/utils/nfsd/nfssvc.c
+++ b/utils/nfsd/nfssvc.c
@@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits,
}
void
-nfssvc_setvers(unsigned int ctlbits, int minorvers4)
+nfssvc_setvers(unsigned int ctlbits, int minorvers41)
{
int fd, n, off;
char *ptr;
@@ -280,11 +280,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers4)
if (fd < 0)
return;
- n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
- if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
- off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d ",
- minorvers4 > 0 ? '+' : '-',
- n);
+ if (minorvers41)
+ off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1",
+ minorvers41 > 0 ? '+' : '-');
for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
if (NFSCTL_VERISSET(ctlbits, n))
off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n);
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 14:35 ` J. Bruce Fields
@ 2011-09-19 15:16 ` Steve Dickson
2011-09-19 15:27 ` J. Bruce Fields
0 siblings, 1 reply; 12+ messages in thread
From: Steve Dickson @ 2011-09-19 15:16 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing List
On 09/19/2011 10:35 AM, J. Bruce Fields wrote:
> On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
>>
>>
>> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
>>> diff --git a/configure.ac b/configure.ac
>>> index 1a28f8a..7000324 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
>>> AC_SUBST(enable_nfsv4)
>>> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
>>>
>>> -AC_ARG_ENABLE(nfsv41,
>>> - [AC_HELP_STRING([--enable-nfsv41],
>>> - [enable support for NFSv41 @<:@default=no@:>@])],
>>> - enable_nfsv41=$enableval,
>>> - enable_nfsv41=no)
>>> - if test "$enable_nfsv41" = yes; then
>>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
>>> - else
>>> - enable_nfsv41=
>>> - fi
>>> - AC_SUBST(enable_nfsv41)
>>> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
>>> -
>> I think we still need this for the 4.1 client code.
>
> OK. Or I can wait and resend a patch after you've committed the changes
> for the client's block daemon, if you'd prefer.
I'll deal with the configure code....
>
>>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
>>> index e7e1470..fa9c429 100644
>>> --- a/utils/nfsd/nfsd.c
>>> +++ b/utils/nfsd/nfsd.c
>>> @@ -40,6 +40,7 @@ static struct option longopts[] =
>>> { "port", 1, 0, 'p' },
>>> { "debug", 0, 0, 'd' },
>>> { "syslog", 0, 0, 's' },
>>> + { "enable-41", 0, 0, 'X' },
>>> { NULL, 0, 0, 0 }
>>> };
>> Introducing temporary, undocumented command line arguments
>> is generally not a good thing... IMHO... I was think more
>> of an echo to /proc/fs/nfsd/versions to enable the support.
>
> I think it's a reasonable thing to do for experimental code.
>
> But we could do the following instead. (Warning: still untested.)
>
> --b.
>
> commit 8d69da4c556f8ad2d42caa3875a665761c27463e
> Author: J. Bruce Fields <bfields@citi.umich.edu>
> Date: Thu Dec 17 17:11:54 2009 -0500
>
> nfsd: allow choosing server 41 support at runtime
>
> In the case where -N 4.1 is left off the commandline, the current code
> explicitly turns it on or off anyway, depending on configure options.
>
> Instead, just leave 4.1 support alone. This allows a user to add an
> "echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
> Otherwise they will get the kernel's default (currently to leave 4.1
> off, as long as 4.1 support is experimental).
I think this is a good compromise... Could you spend a few
cycles on making sure that echo does indeed turn on 4.1 support?
tia,
steved.
>
> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
>
> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
> index c939d78..320880e 100644
> --- a/support/include/nfs/nfs.h
> +++ b/support/include/nfs/nfs.h
> @@ -15,13 +15,6 @@
> #define NFSD_MINVERS 2
> #define NFSD_MAXVERS 4
>
> -#define NFSD_MINMINORVERS4 1
> -#ifdef NFS41_SUPPORTED
> -#define NFSD_MAXMINORVERS4 1
> -#else
> -#define NFSD_MAXMINORVERS4 0
> -#endif
> -
> struct nfs_fh_len {
> int fh_size;
> u_int8_t fh_handle[NFS3_FHSIZE];
> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> index e7e1470..8bc5d3a 100644
> --- a/utils/nfsd/nfsd.c
> +++ b/utils/nfsd/nfsd.c
> @@ -94,7 +94,7 @@ main(int argc, char **argv)
> char *p, *progname, *port;
> char *haddr = NULL;
> int socket_up = 0;
> - int minorvers4 = NFSD_MAXMINORVERS4; /* nfsv4 minor version */
> + int minorvers41 = 0; /* nfsv4 minor version */
> unsigned int versbits = NFSCTL_ALLBITS;
> unsigned int protobits = NFSCTL_ALLBITS;
> unsigned int proto4 = 0;
> @@ -154,7 +154,12 @@ main(int argc, char **argv)
> switch((c = strtol(optarg, &p, 0))) {
> case 4:
> if (*p == '.') {
> - minorvers4 = -atoi(p + 1);
> + int i = atoi(p+1);
> + if (i != 1) {
> + fprintf(stderr, "%s: unsupported minor version\n", optarg);
> + exit(1);
> + }
> + minorvers41 = -1;
> break;
> }
> case 3:
> @@ -251,7 +256,7 @@ main(int argc, char **argv)
> * registered with rpcbind. Note that on older kernels w/o the right
> * interfaces, these are a no-op.
> */
> - nfssvc_setvers(versbits, minorvers4);
> + nfssvc_setvers(versbits, minorvers41);
>
> error = nfssvc_set_sockets(AF_INET, proto4, haddr, port);
> if (!error)
> diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c
> index f607214..683008e 100644
> --- a/utils/nfsd/nfssvc.c
> +++ b/utils/nfsd/nfssvc.c
> @@ -269,7 +269,7 @@ nfssvc_set_sockets(const int family, const unsigned int protobits,
> }
>
> void
> -nfssvc_setvers(unsigned int ctlbits, int minorvers4)
> +nfssvc_setvers(unsigned int ctlbits, int minorvers41)
> {
> int fd, n, off;
> char *ptr;
> @@ -280,11 +280,9 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers4)
> if (fd < 0)
> return;
>
> - n = minorvers4 >= 0 ? minorvers4 : -minorvers4;
> - if (n >= NFSD_MINMINORVERS4 && n <= NFSD_MAXMINORVERS4)
> - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.%d ",
> - minorvers4 > 0 ? '+' : '-',
> - n);
> + if (minorvers41)
> + off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1",
> + minorvers41 > 0 ? '+' : '-');
> for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) {
> if (NFSCTL_VERISSET(ctlbits, n))
> off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n);
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 15:16 ` Steve Dickson
@ 2011-09-19 15:27 ` J. Bruce Fields
2011-09-19 18:15 ` J. Bruce Fields
0 siblings, 1 reply; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-19 15:27 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Mon, Sep 19, 2011 at 11:16:21AM -0400, Steve Dickson wrote:
>
>
> On 09/19/2011 10:35 AM, J. Bruce Fields wrote:
> > On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
> >>
> >>
> >> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
> >>> diff --git a/configure.ac b/configure.ac
> >>> index 1a28f8a..7000324 100644
> >>> --- a/configure.ac
> >>> +++ b/configure.ac
> >>> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
> >>> AC_SUBST(enable_nfsv4)
> >>> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
> >>>
> >>> -AC_ARG_ENABLE(nfsv41,
> >>> - [AC_HELP_STRING([--enable-nfsv41],
> >>> - [enable support for NFSv41 @<:@default=no@:>@])],
> >>> - enable_nfsv41=$enableval,
> >>> - enable_nfsv41=no)
> >>> - if test "$enable_nfsv41" = yes; then
> >>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> >>> - else
> >>> - enable_nfsv41=
> >>> - fi
> >>> - AC_SUBST(enable_nfsv41)
> >>> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
> >>> -
> >> I think we still need this for the 4.1 client code.
> >
> > OK. Or I can wait and resend a patch after you've committed the changes
> > for the client's block daemon, if you'd prefer.
> I'll deal with the configure code....
>
> >
> >>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> >>> index e7e1470..fa9c429 100644
> >>> --- a/utils/nfsd/nfsd.c
> >>> +++ b/utils/nfsd/nfsd.c
> >>> @@ -40,6 +40,7 @@ static struct option longopts[] =
> >>> { "port", 1, 0, 'p' },
> >>> { "debug", 0, 0, 'd' },
> >>> { "syslog", 0, 0, 's' },
> >>> + { "enable-41", 0, 0, 'X' },
> >>> { NULL, 0, 0, 0 }
> >>> };
> >> Introducing temporary, undocumented command line arguments
> >> is generally not a good thing... IMHO... I was think more
> >> of an echo to /proc/fs/nfsd/versions to enable the support.
> >
> > I think it's a reasonable thing to do for experimental code.
> >
> > But we could do the following instead. (Warning: still untested.)
> >
> > --b.
> >
> > commit 8d69da4c556f8ad2d42caa3875a665761c27463e
> > Author: J. Bruce Fields <bfields@citi.umich.edu>
> > Date: Thu Dec 17 17:11:54 2009 -0500
> >
> > nfsd: allow choosing server 41 support at runtime
> >
> > In the case where -N 4.1 is left off the commandline, the current code
> > explicitly turns it on or off anyway, depending on configure options.
> >
> > Instead, just leave 4.1 support alone. This allows a user to add an
> > "echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
> > Otherwise they will get the kernel's default (currently to leave 4.1
> > off, as long as 4.1 support is experimental).
> I think this is a good compromise... Could you spend a few
> cycles on making sure that echo does indeed turn on 4.1 support?
Yep, will do.
--b.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 15:27 ` J. Bruce Fields
@ 2011-09-19 18:15 ` J. Bruce Fields
2011-09-20 11:43 ` Steve Dickson
0 siblings, 1 reply; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-19 18:15 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Mon, Sep 19, 2011 at 11:27:25AM -0400, J. Bruce Fields wrote:
> On Mon, Sep 19, 2011 at 11:16:21AM -0400, Steve Dickson wrote:
> >
> >
> > On 09/19/2011 10:35 AM, J. Bruce Fields wrote:
> > > On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
> > >>
> > >>
> > >> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
> > >>> diff --git a/configure.ac b/configure.ac
> > >>> index 1a28f8a..7000324 100644
> > >>> --- a/configure.ac
> > >>> +++ b/configure.ac
> > >>> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
> > >>> AC_SUBST(enable_nfsv4)
> > >>> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
> > >>>
> > >>> -AC_ARG_ENABLE(nfsv41,
> > >>> - [AC_HELP_STRING([--enable-nfsv41],
> > >>> - [enable support for NFSv41 @<:@default=no@:>@])],
> > >>> - enable_nfsv41=$enableval,
> > >>> - enable_nfsv41=no)
> > >>> - if test "$enable_nfsv41" = yes; then
> > >>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> > >>> - else
> > >>> - enable_nfsv41=
> > >>> - fi
> > >>> - AC_SUBST(enable_nfsv41)
> > >>> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
> > >>> -
> > >> I think we still need this for the 4.1 client code.
> > >
> > > OK. Or I can wait and resend a patch after you've committed the changes
> > > for the client's block daemon, if you'd prefer.
> > I'll deal with the configure code....
> >
> > >
> > >>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> > >>> index e7e1470..fa9c429 100644
> > >>> --- a/utils/nfsd/nfsd.c
> > >>> +++ b/utils/nfsd/nfsd.c
> > >>> @@ -40,6 +40,7 @@ static struct option longopts[] =
> > >>> { "port", 1, 0, 'p' },
> > >>> { "debug", 0, 0, 'd' },
> > >>> { "syslog", 0, 0, 's' },
> > >>> + { "enable-41", 0, 0, 'X' },
> > >>> { NULL, 0, 0, 0 }
> > >>> };
> > >> Introducing temporary, undocumented command line arguments
> > >> is generally not a good thing... IMHO... I was think more
> > >> of an echo to /proc/fs/nfsd/versions to enable the support.
> > >
> > > I think it's a reasonable thing to do for experimental code.
> > >
> > > But we could do the following instead. (Warning: still untested.)
> > >
> > > --b.
> > >
> > > commit 8d69da4c556f8ad2d42caa3875a665761c27463e
> > > Author: J. Bruce Fields <bfields@citi.umich.edu>
> > > Date: Thu Dec 17 17:11:54 2009 -0500
> > >
> > > nfsd: allow choosing server 41 support at runtime
> > >
> > > In the case where -N 4.1 is left off the commandline, the current code
> > > explicitly turns it on or off anyway, depending on configure options.
> > >
> > > Instead, just leave 4.1 support alone. This allows a user to add an
> > > "echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
> > > Otherwise they will get the kernel's default (currently to leave 4.1
> > > off, as long as 4.1 support is experimental).
> > I think this is a good compromise... Could you spend a few
> > cycles on making sure that echo does indeed turn on 4.1 support?
>
> Yep, will do.
Done; that patch worked for me. Let me know if you need it resent.
--b.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
2011-09-19 18:15 ` J. Bruce Fields
@ 2011-09-20 11:43 ` Steve Dickson
[not found] ` <4E787C6E.8080104-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
0 siblings, 1 reply; 12+ messages in thread
From: Steve Dickson @ 2011-09-20 11:43 UTC (permalink / raw)
To: J. Bruce Fields; +Cc: Linux NFS Mailing List
On 09/19/2011 02:15 PM, J. Bruce Fields wrote:
> On Mon, Sep 19, 2011 at 11:27:25AM -0400, J. Bruce Fields wrote:
>> On Mon, Sep 19, 2011 at 11:16:21AM -0400, Steve Dickson wrote:
>>>
>>>
>>> On 09/19/2011 10:35 AM, J. Bruce Fields wrote:
>>>> On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
>>>>>
>>>>>
>>>>> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
>>>>>> diff --git a/configure.ac b/configure.ac
>>>>>> index 1a28f8a..7000324 100644
>>>>>> --- a/configure.ac
>>>>>> +++ b/configure.ac
>>>>>> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
>>>>>> AC_SUBST(enable_nfsv4)
>>>>>> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
>>>>>>
>>>>>> -AC_ARG_ENABLE(nfsv41,
>>>>>> - [AC_HELP_STRING([--enable-nfsv41],
>>>>>> - [enable support for NFSv41 @<:@default=no@:>@])],
>>>>>> - enable_nfsv41=$enableval,
>>>>>> - enable_nfsv41=no)
>>>>>> - if test "$enable_nfsv41" = yes; then
>>>>>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
>>>>>> - else
>>>>>> - enable_nfsv41=
>>>>>> - fi
>>>>>> - AC_SUBST(enable_nfsv41)
>>>>>> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
>>>>>> -
>>>>> I think we still need this for the 4.1 client code.
>>>>
>>>> OK. Or I can wait and resend a patch after you've committed the changes
>>>> for the client's block daemon, if you'd prefer.
>>> I'll deal with the configure code....
>>>
>>>>
>>>>>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
>>>>>> index e7e1470..fa9c429 100644
>>>>>> --- a/utils/nfsd/nfsd.c
>>>>>> +++ b/utils/nfsd/nfsd.c
>>>>>> @@ -40,6 +40,7 @@ static struct option longopts[] =
>>>>>> { "port", 1, 0, 'p' },
>>>>>> { "debug", 0, 0, 'd' },
>>>>>> { "syslog", 0, 0, 's' },
>>>>>> + { "enable-41", 0, 0, 'X' },
>>>>>> { NULL, 0, 0, 0 }
>>>>>> };
>>>>> Introducing temporary, undocumented command line arguments
>>>>> is generally not a good thing... IMHO... I was think more
>>>>> of an echo to /proc/fs/nfsd/versions to enable the support.
>>>>
>>>> I think it's a reasonable thing to do for experimental code.
>>>>
>>>> But we could do the following instead. (Warning: still untested.)
>>>>
>>>> --b.
>>>>
>>>> commit 8d69da4c556f8ad2d42caa3875a665761c27463e
>>>> Author: J. Bruce Fields <bfields@citi.umich.edu>
>>>> Date: Thu Dec 17 17:11:54 2009 -0500
>>>>
>>>> nfsd: allow choosing server 41 support at runtime
>>>>
>>>> In the case where -N 4.1 is left off the commandline, the current code
>>>> explicitly turns it on or off anyway, depending on configure options.
>>>>
>>>> Instead, just leave 4.1 support alone. This allows a user to add an
>>>> "echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
>>>> Otherwise they will get the kernel's default (currently to leave 4.1
>>>> off, as long as 4.1 support is experimental).
>>> I think this is a good compromise... Could you spend a few
>>> cycles on making sure that echo does indeed turn on 4.1 support?
>>
>> Yep, will do.
>
> Done; that patch worked for me. Let me know if you need it resent.
No need... Its committed...
steved.
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH 1/2] configure.ac: Added server 4.1 support configuration option
[not found] ` <4E787C6E.8080104-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
@ 2011-09-20 11:47 ` J. Bruce Fields
0 siblings, 0 replies; 12+ messages in thread
From: J. Bruce Fields @ 2011-09-20 11:47 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Tue, Sep 20, 2011 at 07:43:42AM -0400, Steve Dickson wrote:
>
>
> On 09/19/2011 02:15 PM, J. Bruce Fields wrote:
> > On Mon, Sep 19, 2011 at 11:27:25AM -0400, J. Bruce Fields wrote:
> >> On Mon, Sep 19, 2011 at 11:16:21AM -0400, Steve Dickson wrote:
> >>>
> >>>
> >>> On 09/19/2011 10:35 AM, J. Bruce Fields wrote:
> >>>> On Mon, Sep 19, 2011 at 10:20:38AM -0400, Steve Dickson wrote:
> >>>>>
> >>>>>
> >>>>> On 09/19/2011 09:38 AM, J. Bruce Fields wrote:
> >>>>>> diff --git a/configure.ac b/configure.ac
> >>>>>> index 1a28f8a..7000324 100644
> >>>>>> --- a/configure.ac
> >>>>>> +++ b/configure.ac
> >>>>>> @@ -73,19 +73,6 @@ AC_ARG_ENABLE(nfsv4,
> >>>>>> AC_SUBST(enable_nfsv4)
> >>>>>> AM_CONDITIONAL(CONFIG_NFSV4, [test "$enable_nfsv4" = "yes"])
> >>>>>>
> >>>>>> -AC_ARG_ENABLE(nfsv41,
> >>>>>> - [AC_HELP_STRING([--enable-nfsv41],
> >>>>>> - [enable support for NFSv41 @<:@default=no@:>@])],
> >>>>>> - enable_nfsv41=$enableval,
> >>>>>> - enable_nfsv41=no)
> >>>>>> - if test "$enable_nfsv41" = yes; then
> >>>>>> - AC_DEFINE(NFS41_SUPPORTED, 1, [Define this if you want NFSv41 support compiled in])
> >>>>>> - else
> >>>>>> - enable_nfsv41=
> >>>>>> - fi
> >>>>>> - AC_SUBST(enable_nfsv41)
> >>>>>> - AM_CONDITIONAL(CONFIG_NFSV41, [test "$enable_nfsv41" = "yes"])
> >>>>>> -
> >>>>> I think we still need this for the 4.1 client code.
> >>>>
> >>>> OK. Or I can wait and resend a patch after you've committed the changes
> >>>> for the client's block daemon, if you'd prefer.
> >>> I'll deal with the configure code....
> >>>
> >>>>
> >>>>>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> >>>>>> index e7e1470..fa9c429 100644
> >>>>>> --- a/utils/nfsd/nfsd.c
> >>>>>> +++ b/utils/nfsd/nfsd.c
> >>>>>> @@ -40,6 +40,7 @@ static struct option longopts[] =
> >>>>>> { "port", 1, 0, 'p' },
> >>>>>> { "debug", 0, 0, 'd' },
> >>>>>> { "syslog", 0, 0, 's' },
> >>>>>> + { "enable-41", 0, 0, 'X' },
> >>>>>> { NULL, 0, 0, 0 }
> >>>>>> };
> >>>>> Introducing temporary, undocumented command line arguments
> >>>>> is generally not a good thing... IMHO... I was think more
> >>>>> of an echo to /proc/fs/nfsd/versions to enable the support.
> >>>>
> >>>> I think it's a reasonable thing to do for experimental code.
> >>>>
> >>>> But we could do the following instead. (Warning: still untested.)
> >>>>
> >>>> --b.
> >>>>
> >>>> commit 8d69da4c556f8ad2d42caa3875a665761c27463e
> >>>> Author: J. Bruce Fields <bfields@citi.umich.edu>
> >>>> Date: Thu Dec 17 17:11:54 2009 -0500
> >>>>
> >>>> nfsd: allow choosing server 41 support at runtime
> >>>>
> >>>> In the case where -N 4.1 is left off the commandline, the current code
> >>>> explicitly turns it on or off anyway, depending on configure options.
> >>>>
> >>>> Instead, just leave 4.1 support alone. This allows a user to add an
> >>>> "echo +4.1 >/proc/fs/nfsd/versions" to their init scripts, if they want.
> >>>> Otherwise they will get the kernel's default (currently to leave 4.1
> >>>> off, as long as 4.1 support is experimental).
> >>> I think this is a good compromise... Could you spend a few
> >>> cycles on making sure that echo does indeed turn on 4.1 support?
> >>
> >> Yep, will do.
> >
> > Done; that patch worked for me. Let me know if you need it resent.
> No need... Its committed...
Thanks!--b.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-09-20 11:47 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-17 15:17 [PATCH 1/2] configure.ac: Added server 4.1 support configuration option Steve Dickson
2011-09-17 15:17 ` [PATCH 2/2] configure.ac: Remove unused NFS3_SUPPORTED define Steve Dickson
2011-09-17 18:36 ` [PATCH 1/2] configure.ac: Added server 4.1 support configuration option J. Bruce Fields
2011-09-19 9:51 ` Steve Dickson
2011-09-19 13:38 ` J. Bruce Fields
2011-09-19 14:20 ` Steve Dickson
2011-09-19 14:35 ` J. Bruce Fields
2011-09-19 15:16 ` Steve Dickson
2011-09-19 15:27 ` J. Bruce Fields
2011-09-19 18:15 ` J. Bruce Fields
2011-09-20 11:43 ` Steve Dickson
[not found] ` <4E787C6E.8080104-AfCzQyP5zfLQT0dZR+AlfA@public.gmane.org>
2011-09-20 11:47 ` J. Bruce Fields
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).