diff mbox

nfsd: Set default minor versions

Message ID 20180417184220.54724-1-steved@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Steve Dickson April 17, 2018, 6:42 p.m. UTC
Due to the way the kernel stores the supported
minor versions, when a minor is turned off,
via the -N flag, it can only turned back on
via -V flag.

The default minor values should also enable
these minor versions.

Signed-off-by: Steve Dickson <steved@redhat.com>
---
 support/include/nfs/nfs.h | 1 +
 utils/nfsd/nfsd.c         | 4 ++--
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

J. Bruce Fields April 18, 2018, 4:22 p.m. UTC | #1
On Tue, Apr 17, 2018 at 02:42:20PM -0400, Steve Dickson wrote:
> Due to the way the kernel stores the supported
> minor versions, when a minor is turned off,
> via the -N flag, it can only turned back on
> via -V flag.
> 
> The default minor values should also enable
> these minor versions.

Yeah, I remember now why I didn't want this.

It means that by default if somebody installs an old kernel from the
time when 4.1/4.2 support was much more experimental, then they get
4.1 and 4.2 by default.

Whereas if rpc.nfsd just doesn't touch those values then they'll get the
kernel default, leaving 4.1/4.2 off on older kernels and turning them
back on on newer kernels.

But, whatever, I'm not sure that was the right approach.  And 4.2's been
the kernel's default for 3 years now anyway.

So, ACK to the patch, thanks.

--b.

> 
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
>  support/include/nfs/nfs.h | 1 +
>  utils/nfsd/nfsd.c         | 4 ++--
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
> index 7933ff5..b7d9e06 100644
> --- a/support/include/nfs/nfs.h
> +++ b/support/include/nfs/nfs.h
> @@ -40,6 +40,7 @@ struct nfs_fh_len {
>  #define NFSCTL_TCPISSET(_cltbits)     ((_cltbits) & NFSCTL_TCPBIT) 
>  
>  #define NFSCTL_VERDEFAULT (0xc)       /* versions 3 and 4 */
> +#define NFSCTL_MINDEFAULT (0x7)       /* minor versions 4.1 and 4.2 */
>  #define NFSCTL_VERSET(_cltbits, _v)   ((_cltbits) |= (1 << ((_v) - 1))) 
>  #define NFSCTL_MINORSET(_cltbits, _v)   ((_cltbits) |= (1 << (_v)))
>  #define NFSCTL_UDPSET(_cltbits)       ((_cltbits) |= NFSCTL_UDPBIT)
> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> index f41a2de..2303a5d 100644
> --- a/utils/nfsd/nfsd.c
> +++ b/utils/nfsd/nfsd.c
> @@ -65,8 +65,8 @@ main(int argc, char **argv)
>  	int hcounter = 0;
>  	struct conf_list *hosts;
>  	int	socket_up = 0;
> -	unsigned int minorvers = 0;
> -	unsigned int minorversset = 0;
> +	unsigned int minorvers = NFSCTL_MINDEFAULT;
> +	unsigned int minorversset = NFSCTL_MINDEFAULT;
>  	unsigned int minormask = 0;
>  	unsigned int versbits = NFSCTL_VERDEFAULT;
>  	unsigned int protobits = NFSCTL_PROTODEFAULT;
> -- 
> 2.14.3
> 
> --
> 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
--
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
Steve Dickson April 20, 2018, 3:02 p.m. UTC | #2
On 04/18/2018 12:22 PM, J. Bruce Fields wrote:
> On Tue, Apr 17, 2018 at 02:42:20PM -0400, Steve Dickson wrote:
>> Due to the way the kernel stores the supported
>> minor versions, when a minor is turned off,
>> via the -N flag, it can only turned back on
>> via -V flag.
>>
>> The default minor values should also enable
>> these minor versions.
> 
> Yeah, I remember now why I didn't want this.
> 
> It means that by default if somebody installs an old kernel from the
> time when 4.1/4.2 support was much more experimental, then they get
> 4.1 and 4.2 by default.
> 
> Whereas if rpc.nfsd just doesn't touch those values then they'll get the
> kernel default, leaving 4.1/4.2 off on older kernels and turning them
> back on on newer kernels.
> 
> But, whatever, I'm not sure that was the right approach.  And 4.2's been
> the kernel's default for 3 years now anyway.
Just for grinds... I added the patch to send unsupported
minor version to an older kernel (RHEL6)... No errors
and /proc/fs/nfsd/versions had the correct info. 

So it appears to be harmless...

> 
> So, ACK to the patch, thanks.
Thanks!

steved.

> 
> --b.
> 
>>
>> Signed-off-by: Steve Dickson <steved@redhat.com>
>> ---
>>  support/include/nfs/nfs.h | 1 +
>>  utils/nfsd/nfsd.c         | 4 ++--
>>  2 files changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
>> index 7933ff5..b7d9e06 100644
>> --- a/support/include/nfs/nfs.h
>> +++ b/support/include/nfs/nfs.h
>> @@ -40,6 +40,7 @@ struct nfs_fh_len {
>>  #define NFSCTL_TCPISSET(_cltbits)     ((_cltbits) & NFSCTL_TCPBIT) 
>>  
>>  #define NFSCTL_VERDEFAULT (0xc)       /* versions 3 and 4 */
>> +#define NFSCTL_MINDEFAULT (0x7)       /* minor versions 4.1 and 4.2 */
>>  #define NFSCTL_VERSET(_cltbits, _v)   ((_cltbits) |= (1 << ((_v) - 1))) 
>>  #define NFSCTL_MINORSET(_cltbits, _v)   ((_cltbits) |= (1 << (_v)))
>>  #define NFSCTL_UDPSET(_cltbits)       ((_cltbits) |= NFSCTL_UDPBIT)
>> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
>> index f41a2de..2303a5d 100644
>> --- a/utils/nfsd/nfsd.c
>> +++ b/utils/nfsd/nfsd.c
>> @@ -65,8 +65,8 @@ main(int argc, char **argv)
>>  	int hcounter = 0;
>>  	struct conf_list *hosts;
>>  	int	socket_up = 0;
>> -	unsigned int minorvers = 0;
>> -	unsigned int minorversset = 0;
>> +	unsigned int minorvers = NFSCTL_MINDEFAULT;
>> +	unsigned int minorversset = NFSCTL_MINDEFAULT;
>>  	unsigned int minormask = 0;
>>  	unsigned int versbits = NFSCTL_VERDEFAULT;
>>  	unsigned int protobits = NFSCTL_PROTODEFAULT;
>> -- 
>> 2.14.3
>>
>> --
>> 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
--
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
Steve Dickson April 20, 2018, 3:03 p.m. UTC | #3
On 04/17/2018 02:42 PM, Steve Dickson wrote:
> Due to the way the kernel stores the supported
> minor versions, when a minor is turned off,
> via the -N flag, it can only turned back on
> via -V flag.
> 
> The default minor values should also enable
> these minor versions.
> 
> Signed-off-by: Steve Dickson <steved@redhat.com>
Committed... 

steved.
> ---
>  support/include/nfs/nfs.h | 1 +
>  utils/nfsd/nfsd.c         | 4 ++--
>  2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
> index 7933ff5..b7d9e06 100644
> --- a/support/include/nfs/nfs.h
> +++ b/support/include/nfs/nfs.h
> @@ -40,6 +40,7 @@ struct nfs_fh_len {
>  #define NFSCTL_TCPISSET(_cltbits)     ((_cltbits) & NFSCTL_TCPBIT) 
>  
>  #define NFSCTL_VERDEFAULT (0xc)       /* versions 3 and 4 */
> +#define NFSCTL_MINDEFAULT (0x7)       /* minor versions 4.1 and 4.2 */
>  #define NFSCTL_VERSET(_cltbits, _v)   ((_cltbits) |= (1 << ((_v) - 1))) 
>  #define NFSCTL_MINORSET(_cltbits, _v)   ((_cltbits) |= (1 << (_v)))
>  #define NFSCTL_UDPSET(_cltbits)       ((_cltbits) |= NFSCTL_UDPBIT)
> diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
> index f41a2de..2303a5d 100644
> --- a/utils/nfsd/nfsd.c
> +++ b/utils/nfsd/nfsd.c
> @@ -65,8 +65,8 @@ main(int argc, char **argv)
>  	int hcounter = 0;
>  	struct conf_list *hosts;
>  	int	socket_up = 0;
> -	unsigned int minorvers = 0;
> -	unsigned int minorversset = 0;
> +	unsigned int minorvers = NFSCTL_MINDEFAULT;
> +	unsigned int minorversset = NFSCTL_MINDEFAULT;
>  	unsigned int minormask = 0;
>  	unsigned int versbits = NFSCTL_VERDEFAULT;
>  	unsigned int protobits = NFSCTL_PROTODEFAULT;
> 
--
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
diff mbox

Patch

diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h
index 7933ff5..b7d9e06 100644
--- a/support/include/nfs/nfs.h
+++ b/support/include/nfs/nfs.h
@@ -40,6 +40,7 @@  struct nfs_fh_len {
 #define NFSCTL_TCPISSET(_cltbits)     ((_cltbits) & NFSCTL_TCPBIT) 
 
 #define NFSCTL_VERDEFAULT (0xc)       /* versions 3 and 4 */
+#define NFSCTL_MINDEFAULT (0x7)       /* minor versions 4.1 and 4.2 */
 #define NFSCTL_VERSET(_cltbits, _v)   ((_cltbits) |= (1 << ((_v) - 1))) 
 #define NFSCTL_MINORSET(_cltbits, _v)   ((_cltbits) |= (1 << (_v)))
 #define NFSCTL_UDPSET(_cltbits)       ((_cltbits) |= NFSCTL_UDPBIT)
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
index f41a2de..2303a5d 100644
--- a/utils/nfsd/nfsd.c
+++ b/utils/nfsd/nfsd.c
@@ -65,8 +65,8 @@  main(int argc, char **argv)
 	int hcounter = 0;
 	struct conf_list *hosts;
 	int	socket_up = 0;
-	unsigned int minorvers = 0;
-	unsigned int minorversset = 0;
+	unsigned int minorvers = NFSCTL_MINDEFAULT;
+	unsigned int minorversset = NFSCTL_MINDEFAULT;
 	unsigned int minormask = 0;
 	unsigned int versbits = NFSCTL_VERDEFAULT;
 	unsigned int protobits = NFSCTL_PROTODEFAULT;