* [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support. @ 2013-07-28 18:36 Steve Dickson 2013-07-28 18:36 ` [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option Steve Dickson 2013-07-30 15:51 ` [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support J. Bruce Fields 0 siblings, 2 replies; 7+ messages in thread From: Steve Dickson @ 2013-07-28 18:36 UTC (permalink / raw) To: Linux NFS Mailing list Changed the default protocol versions that rpc.nfsd register with rpcbind to just 3 and 4. Version 2 can still be enabled with the '-V' flag, but it will not be on by default. Signed-off-by: Steve Dickson <steved@redhat.com> --- support/include/nfs/nfs.h | 1 + utils/nfsd/nfsd.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 174c2dd..5fd86f6 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -52,6 +52,7 @@ struct nfs_fh_old { #define NFSCTL_UDPISSET(_cltbits) ((_cltbits) & NFSCTL_UDPBIT) #define NFSCTL_TCPISSET(_cltbits) ((_cltbits) & NFSCTL_TCPBIT) +#define NFSCTL_VERDEFAULT (0xc) /* versions 3 and 4 */ #define NFSCTL_VERSET(_cltbits, _v) ((_cltbits) |= (1 << ((_v) - 1))) #define NFSCTL_UDPSET(_cltbits) ((_cltbits) |= NFSCTL_UDPBIT) #define NFSCTL_TCPSET(_cltbits) ((_cltbits) |= NFSCTL_TCPBIT) diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c index e87c0a9..df48392 100644 --- a/utils/nfsd/nfsd.c +++ b/utils/nfsd/nfsd.c @@ -100,7 +100,7 @@ main(int argc, char **argv) char *haddr = NULL; int socket_up = 0; int minorvers41 = 0; /* nfsv4 minor version */ - unsigned int versbits = NFSCTL_ALLBITS; + unsigned int versbits = NFSCTL_VERDEFAULT; unsigned int protobits = NFSCTL_ALLBITS; unsigned int proto4 = 0; unsigned int proto6 = 0; -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option 2013-07-28 18:36 [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support Steve Dickson @ 2013-07-28 18:36 ` Steve Dickson 2013-07-30 15:59 ` J. Bruce Fields 2013-08-19 18:26 ` Steve Dickson 2013-07-30 15:51 ` [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support J. Bruce Fields 1 sibling, 2 replies; 7+ messages in thread From: Steve Dickson @ 2013-07-28 18:36 UTC (permalink / raw) To: Linux NFS Mailing list Signed-off-by: Steve Dickson <steved@redhat.com> --- support/include/nfs/nfs.h | 4 ++++ utils/nfsd/nfsd.c | 12 ++++++------ utils/nfsd/nfssvc.c | 11 +++++++---- 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h index 5fd86f6..38db5b5 100644 --- a/support/include/nfs/nfs.h +++ b/support/include/nfs/nfs.h @@ -15,6 +15,10 @@ #define NFSD_MINVERS 2 #define NFSD_MAXVERS 4 +#define NFS4_MINMINOR 1 +#define NFS4_MAXMINOR 2 +#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */ + 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 df48392..6db92f0 100644 --- a/utils/nfsd/nfsd.c +++ b/utils/nfsd/nfsd.c @@ -99,7 +99,7 @@ main(int argc, char **argv) char *p, *progname, *port; char *haddr = NULL; int socket_up = 0; - int minorvers41 = 0; /* nfsv4 minor version */ + int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */ unsigned int versbits = NFSCTL_VERDEFAULT; unsigned int protobits = NFSCTL_ALLBITS; unsigned int proto4 = 0; @@ -160,11 +160,11 @@ main(int argc, char **argv) case 4: if (*p == '.') { int i = atoi(p+1); - if (i != 1) { + if (i > 2) { fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - minorvers41 = -1; + NFSCTL_VERUNSET(minorvers, i); break; } case 3: @@ -181,11 +181,11 @@ main(int argc, char **argv) case 4: if (*p == '.') { int i = atoi(p+1); - if (i != 1) { + if (i > 2) { fprintf(stderr, "%s: unsupported minor version\n", optarg); exit(1); } - minorvers41 = 1; + NFSCTL_VERSET(minorvers, i); break; } case 3: @@ -282,7 +282,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, minorvers41); + nfssvc_setvers(versbits, minorvers); error = nfssvc_set_sockets(AF_INET, proto4, haddr, port); if (!error) diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c index 683008e..8b85846 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 minorvers41) +nfssvc_setvers(unsigned int ctlbits, int minorvers) { int fd, n, off; char *ptr; @@ -280,9 +280,12 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers41) if (fd < 0) return; - if (minorvers41) - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1", - minorvers41 > 0 ? '+' : '-'); + for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { + if (NFSCTL_VERISSET(minorvers, n)) + off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); + else + off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); + } for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { if (NFSCTL_VERISSET(ctlbits, n)) off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n); -- 1.8.1.4 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option 2013-07-28 18:36 ` [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option Steve Dickson @ 2013-07-30 15:59 ` J. Bruce Fields 2013-07-30 16:09 ` Myklebust, Trond 2013-08-19 18:26 ` Steve Dickson 1 sibling, 1 reply; 7+ messages in thread From: J. Bruce Fields @ 2013-07-30 15:59 UTC (permalink / raw) To: Steve Dickson; +Cc: Linux NFS Mailing list On Sun, Jul 28, 2013 at 02:36:38PM -0400, Steve Dickson wrote: > Signed-off-by: Steve Dickson <steved@redhat.com> I agree that we want to be able to turn on 4.2 support with -V, but this does more than that: > - if (minorvers41) > - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1", > - minorvers41 > 0 ? '+' : '-'); > + for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { > + if (NFSCTL_VERISSET(minorvers, n)) > + off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); > + else > + off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); > + } > for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { > if (NFSCTL_VERISSET(ctlbits, n)) > off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n); Previously minorvers41 could be set to: 1: turn on 4.1 -1: turn off 4.1 0: keep kernel default (user didn't specify) This patch removes the "0" case, which I liked. --b. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option 2013-07-30 15:59 ` J. Bruce Fields @ 2013-07-30 16:09 ` Myklebust, Trond 2013-07-30 20:29 ` J. Bruce Fields 0 siblings, 1 reply; 7+ messages in thread From: Myklebust, Trond @ 2013-07-30 16:09 UTC (permalink / raw) To: J. Bruce Fields; +Cc: Steve Dickson, Linux NFS Mailing list T24gVHVlLCAyMDEzLTA3LTMwIGF0IDExOjU5IC0wNDAwLCBKLiBCcnVjZSBGaWVsZHMgd3JvdGU6 DQo+IE9uIFN1biwgSnVsIDI4LCAyMDEzIGF0IDAyOjM2OjM4UE0gLTA0MDAsIFN0ZXZlIERpY2tz b24gd3JvdGU6DQo+ID4gU2lnbmVkLW9mZi1ieTogU3RldmUgRGlja3NvbiA8c3RldmVkQHJlZGhh dC5jb20+DQo+IA0KPiBJIGFncmVlIHRoYXQgd2Ugd2FudCB0byBiZSBhYmxlIHRvIHR1cm4gb24g NC4yIHN1cHBvcnQgd2l0aCAtViwgYnV0IHRoaXMNCj4gZG9lcyBtb3JlIHRoYW4gdGhhdDoNCj4g DQo+ID4gLQlpZiAobWlub3J2ZXJzNDEpDQo+ID4gLQkJb2ZmICs9IHNucHJpbnRmKHB0citvZmYs IHNpemVvZihidWYpIC0gb2ZmLCAiJWM0LjEiLA0KPiA+IC0JCQkJbWlub3J2ZXJzNDEgPiAwID8g JysnIDogJy0nKTsNCj4gPiArCWZvciAobiA9IE5GUzRfTUlOTUlOT1I7IG4gPD0gTkZTNF9NQVhN SU5PUjsgbisrKSB7DQo+ID4gKwkJaWYgKE5GU0NUTF9WRVJJU1NFVChtaW5vcnZlcnMsIG4pKSAN Cj4gPiArCQkJb2ZmICs9IHNucHJpbnRmKHB0citvZmYsIHNpemVvZihidWYpIC0gb2ZmLCAiKzQu JWQgIiwgbik7DQo+ID4gKwkJZWxzZQkJCQ0KPiA+ICsJCQlvZmYgKz0gc25wcmludGYocHRyK29m Ziwgc2l6ZW9mKGJ1ZikgLSBvZmYsICItNC4lZCAiLCBuKTsNCj4gPiArCX0NCj4gPiAgCWZvciAo biA9IE5GU0RfTUlOVkVSUzsgbiA8PSBORlNEX01BWFZFUlM7IG4rKykgew0KPiA+ICAJCWlmIChO RlNDVExfVkVSSVNTRVQoY3RsYml0cywgbikpDQo+ID4gIAkJICAgIG9mZiArPSBzbnByaW50Zihw dHIrb2ZmLCBzaXplb2YoYnVmKSAtIG9mZiwgIislZCAiLCBuKTsNCj4gDQo+IFByZXZpb3VzbHkg bWlub3J2ZXJzNDEgY291bGQgYmUgc2V0IHRvOg0KPiANCj4gCSAxOiB0dXJuIG9uIDQuMQ0KPiAJ LTE6IHR1cm4gb2ZmIDQuMQ0KPiAJIDA6IGtlZXAga2VybmVsIGRlZmF1bHQgKHVzZXIgZGlkbid0 IHNwZWNpZnkpDQo+IA0KPiBUaGlzIHBhdGNoIHJlbW92ZXMgdGhlICIwIiBjYXNlLCB3aGljaCBJ IGxpa2VkLg0KDQpXaHkgc2hvdWxkIE5GU3Y0IG1pbm9yIHZlcnNpb25zIGJlIHRyZWF0ZWQgYW55 IGRpZmZlcmVudGx5IGZyb20gbWFqb3INCnZlcnNpb25zIGhlcmU/IFdlIGRvbid0IGhhdmUgYSAn a2VybmVsIGRlZmF1bHQnIGZvciBORlN2MiBvciB2MyBvciB2NC4wLg0KDQotLSANClRyb25kIE15 a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyDQoNCk5ldEFwcA0KVHJvbmQuTXlr bGVidXN0QG5ldGFwcC5jb20NCnd3dy5uZXRhcHAuY29tDQo= ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option 2013-07-30 16:09 ` Myklebust, Trond @ 2013-07-30 20:29 ` J. Bruce Fields 0 siblings, 0 replies; 7+ messages in thread From: J. Bruce Fields @ 2013-07-30 20:29 UTC (permalink / raw) To: Myklebust, Trond; +Cc: Steve Dickson, Linux NFS Mailing list On Tue, Jul 30, 2013 at 04:09:06PM +0000, Myklebust, Trond wrote: > On Tue, 2013-07-30 at 11:59 -0400, J. Bruce Fields wrote: > > On Sun, Jul 28, 2013 at 02:36:38PM -0400, Steve Dickson wrote: > > > Signed-off-by: Steve Dickson <steved@redhat.com> > > > > I agree that we want to be able to turn on 4.2 support with -V, but this > > does more than that: > > > > > - if (minorvers41) > > > - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1", > > > - minorvers41 > 0 ? '+' : '-'); > > > + for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { > > > + if (NFSCTL_VERISSET(minorvers, n)) > > > + off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); > > > + else > > > + off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); > > > + } > > > for (n = NFSD_MINVERS; n <= NFSD_MAXVERS; n++) { > > > if (NFSCTL_VERISSET(ctlbits, n)) > > > off += snprintf(ptr+off, sizeof(buf) - off, "+%d ", n); > > > > Previously minorvers41 could be set to: > > > > 1: turn on 4.1 > > -1: turn off 4.1 > > 0: keep kernel default (user didn't specify) > > > > This patch removes the "0" case, which I liked. > > Why should NFSv4 minor versions be treated any differently from major > versions here? We don't have a 'kernel default' for NFSv2 or v3 or v4.0. I think "run the highest minorversion currently considered sufficiently mature" is a useful option. I don't know why that wasn't done for earlier versions. --b. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option 2013-07-28 18:36 ` [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option Steve Dickson 2013-07-30 15:59 ` J. Bruce Fields @ 2013-08-19 18:26 ` Steve Dickson 1 sibling, 0 replies; 7+ messages in thread From: Steve Dickson @ 2013-08-19 18:26 UTC (permalink / raw) To: Steve Dickson; +Cc: Linux NFS Mailing list On 28/07/13 14:36, Steve Dickson wrote: > Signed-off-by: Steve Dickson <steved@redhat.com> > --- > support/include/nfs/nfs.h | 4 ++++ > utils/nfsd/nfsd.c | 12 ++++++------ > utils/nfsd/nfssvc.c | 11 +++++++---- > 3 files changed, 17 insertions(+), 10 deletions(-) Committed... steved. > > diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h > index 5fd86f6..38db5b5 100644 > --- a/support/include/nfs/nfs.h > +++ b/support/include/nfs/nfs.h > @@ -15,6 +15,10 @@ > #define NFSD_MINVERS 2 > #define NFSD_MAXVERS 4 > > +#define NFS4_MINMINOR 1 > +#define NFS4_MAXMINOR 2 > +#define NFS4_VERDEFAULT 0x1 /* minor verion 1 */ > + > 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 df48392..6db92f0 100644 > --- a/utils/nfsd/nfsd.c > +++ b/utils/nfsd/nfsd.c > @@ -99,7 +99,7 @@ main(int argc, char **argv) > char *p, *progname, *port; > char *haddr = NULL; > int socket_up = 0; > - int minorvers41 = 0; /* nfsv4 minor version */ > + int minorvers = NFS4_VERDEFAULT; /* nfsv4 minor version */ > unsigned int versbits = NFSCTL_VERDEFAULT; > unsigned int protobits = NFSCTL_ALLBITS; > unsigned int proto4 = 0; > @@ -160,11 +160,11 @@ main(int argc, char **argv) > case 4: > if (*p == '.') { > int i = atoi(p+1); > - if (i != 1) { > + if (i > 2) { > fprintf(stderr, "%s: unsupported minor version\n", optarg); > exit(1); > } > - minorvers41 = -1; > + NFSCTL_VERUNSET(minorvers, i); > break; > } > case 3: > @@ -181,11 +181,11 @@ main(int argc, char **argv) > case 4: > if (*p == '.') { > int i = atoi(p+1); > - if (i != 1) { > + if (i > 2) { > fprintf(stderr, "%s: unsupported minor version\n", optarg); > exit(1); > } > - minorvers41 = 1; > + NFSCTL_VERSET(minorvers, i); > break; > } > case 3: > @@ -282,7 +282,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, minorvers41); > + nfssvc_setvers(versbits, minorvers); > > error = nfssvc_set_sockets(AF_INET, proto4, haddr, port); > if (!error) > diff --git a/utils/nfsd/nfssvc.c b/utils/nfsd/nfssvc.c > index 683008e..8b85846 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 minorvers41) > +nfssvc_setvers(unsigned int ctlbits, int minorvers) > { > int fd, n, off; > char *ptr; > @@ -280,9 +280,12 @@ nfssvc_setvers(unsigned int ctlbits, int minorvers41) > if (fd < 0) > return; > > - if (minorvers41) > - off += snprintf(ptr+off, sizeof(buf) - off, "%c4.1", > - minorvers41 > 0 ? '+' : '-'); > + for (n = NFS4_MINMINOR; n <= NFS4_MAXMINOR; n++) { > + if (NFSCTL_VERISSET(minorvers, n)) > + off += snprintf(ptr+off, sizeof(buf) - off, "+4.%d ", n); > + else > + off += snprintf(ptr+off, sizeof(buf) - off, "-4.%d ", n); > + } > 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] 7+ messages in thread
* Re: [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support. 2013-07-28 18:36 [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support Steve Dickson 2013-07-28 18:36 ` [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option Steve Dickson @ 2013-07-30 15:51 ` J. Bruce Fields 1 sibling, 0 replies; 7+ messages in thread From: J. Bruce Fields @ 2013-07-30 15:51 UTC (permalink / raw) To: Steve Dickson; +Cc: Linux NFS Mailing list On Sun, Jul 28, 2013 at 02:36:37PM -0400, Steve Dickson wrote: > Changed the default protocol versions that rpc.nfsd > register with rpcbind to just 3 and 4. Version 2 > can still be enabled with the '-V' flag, but it > will not be on by default. OK, I think that's a first reasonable step--ACK. --b. > > Signed-off-by: Steve Dickson <steved@redhat.com> > --- > support/include/nfs/nfs.h | 1 + > utils/nfsd/nfsd.c | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > > diff --git a/support/include/nfs/nfs.h b/support/include/nfs/nfs.h > index 174c2dd..5fd86f6 100644 > --- a/support/include/nfs/nfs.h > +++ b/support/include/nfs/nfs.h > @@ -52,6 +52,7 @@ struct nfs_fh_old { > #define NFSCTL_UDPISSET(_cltbits) ((_cltbits) & NFSCTL_UDPBIT) > #define NFSCTL_TCPISSET(_cltbits) ((_cltbits) & NFSCTL_TCPBIT) > > +#define NFSCTL_VERDEFAULT (0xc) /* versions 3 and 4 */ > #define NFSCTL_VERSET(_cltbits, _v) ((_cltbits) |= (1 << ((_v) - 1))) > #define NFSCTL_UDPSET(_cltbits) ((_cltbits) |= NFSCTL_UDPBIT) > #define NFSCTL_TCPSET(_cltbits) ((_cltbits) |= NFSCTL_TCPBIT) > diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c > index e87c0a9..df48392 100644 > --- a/utils/nfsd/nfsd.c > +++ b/utils/nfsd/nfsd.c > @@ -100,7 +100,7 @@ main(int argc, char **argv) > char *haddr = NULL; > int socket_up = 0; > int minorvers41 = 0; /* nfsv4 minor version */ > - unsigned int versbits = NFSCTL_ALLBITS; > + unsigned int versbits = NFSCTL_VERDEFAULT; > unsigned int protobits = NFSCTL_ALLBITS; > unsigned int proto4 = 0; > unsigned int proto6 = 0; > -- > 1.8.1.4 > > -- > 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] 7+ messages in thread
end of thread, other threads:[~2013-08-19 18:26 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-07-28 18:36 [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support Steve Dickson 2013-07-28 18:36 ` [PATCH 2/2] rpc.nfsd: Allow v4.2 server support with the -V option Steve Dickson 2013-07-30 15:59 ` J. Bruce Fields 2013-07-30 16:09 ` Myklebust, Trond 2013-07-30 20:29 ` J. Bruce Fields 2013-08-19 18:26 ` Steve Dickson 2013-07-30 15:51 ` [PATCH 1/2] rpc.nfsd: No longer advertise NFS v2 support 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).