* [RFC PATCH V2] mount: Added the -o v4.1 mount option
@ 2012-11-19 15:43 Steve Dickson
2012-11-19 15:54 ` Myklebust, Trond
2012-11-19 18:21 ` Chuck Lever
0 siblings, 2 replies; 14+ messages in thread
From: Steve Dickson @ 2012-11-19 15:43 UTC (permalink / raw)
To: Linux NFS Mailing List
This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
or "nfsvers=4,minorversion=1" options.
Signed-off-by: Steve Dickson <steved@redhat.com>
---
utils/mount/network.c | 18 ++++++++++++++++--
utils/mount/nfs.man | 13 +++++++++++++
2 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/utils/mount/network.c b/utils/mount/network.c
index e7bd522..36aa03b 100644
--- a/utils/mount/network.c
+++ b/utils/mount/network.c
@@ -94,6 +94,7 @@ static const char *nfs_version_opttbl[] = {
"v2",
"v3",
"v4",
+ "v4.1",
"vers",
"nfsvers",
NULL,
@@ -1244,11 +1245,20 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version)
case 2: /* v4 */
*version = 4;
return 1;
- case 3: /* vers */
+ case 3: /* v4.1 */
+ *version = 4;
+ po_remove_all(options, "v4.1");
+ po_append(options, "v4,minorversion=1");
+ return 1;
+ case 4: /* vers */
switch (po_get_numeric(options, "vers", &tmp)) {
case PO_FOUND:
if (tmp >= 2 && tmp <= 4) {
*version = tmp;
+ if (strcmp(po_get(options, "vers"), "4.1") == 0) {
+ po_remove_all(options, "vers");
+ po_append(options, "vers=4,minorversion=1");
+ }
return 1;
}
return 0;
@@ -1261,11 +1271,15 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version)
progname);
return 0;
}
- case 4: /* nfsvers */
+ case 5: /* nfsvers */
switch (po_get_numeric(options, "nfsvers", &tmp)) {
case PO_FOUND:
if (tmp >= 2 && tmp <= 4) {
*version = tmp;
+ if (strcmp(po_get(options, "nfsvers"), "4.1") == 0) {
+ po_remove_all(options, "nfsvers");
+ po_append(options, "nfsvers=4,minorversion=1");
+ }
return 1;
}
return 0;
diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
index c15de98..8d1bb56 100644
--- a/utils/mount/nfs.man
+++ b/utils/mount/nfs.man
@@ -762,6 +762,19 @@ by 'nolock'/'lock' mount option.
Use these options, along with the options in the first subsection above,
for NFS version 4 and newer.
.TP 1.5i
+.BI minorversion= n
+Specifies the protocol minor version number.
+NFSv4 introduces "minor versioning," where NFS protocol enhancements can
+be introduced without bumping the NFS protocol version number.
+.IP
+The minor version can also be be specified using the
+.B vers=
+option.
+For example, specifying
+.B vers=4.1
+is the same as specifying
+.BR vers=4,minorversion=1 .
+.TP 1.5i
.BI proto= netid
The
.I netid
--
1.7.11.7
^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 15:43 [RFC PATCH V2] mount: Added the -o v4.1 mount option Steve Dickson
@ 2012-11-19 15:54 ` Myklebust, Trond
2012-11-19 15:58 ` Steve Dickson
2012-11-19 18:21 ` Chuck Lever
1 sibling, 1 reply; 14+ messages in thread
From: Myklebust, Trond @ 2012-11-19 15:54 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
T24gTW9uLCAyMDEyLTExLTE5IGF0IDEwOjQzIC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0K
PiBUaGlzIHBhdGNoIHdpbGwgY29udmVydCAtbyB2NC4xLCB2ZXJzPTQuMSBvciBuZnN2ZXJzPTQu
MSBpbnRvDQo+IHRoZSBjb3JyZXNwb25kaW5nICJ2NCxtaW5vcnZlcnNpb249MSIsICJ2ZXJzPTQs
bWlub3J2ZXJzaW9uPTEiDQo+IG9yICJuZnN2ZXJzPTQsbWlub3J2ZXJzaW9uPTEiIG9wdGlvbnMu
DQo+IA0KDQpOQUNLLg0KDQpJZiB5b3UgYXJlIGdvaW5nIHRvIGRvIHRoaXMsIHRoZW4gcGxlYXNl
IGRvIGl0IG9ubHkgZm9yIGtlcm5lbHMgdGhhdA0KZG9uJ3Qgc3VwcG9ydCB0aGUgInZlcnM9NC4x
IiBzeW50YXguIGkuZS4gYW55dGhpbmcgb2xkZXIgdGhhbiBMaW51eC0zLjQuDQoNCldlIHdhbnQg
dG8gZ2V0IHJpZCBvZiBtaW5vcnZlcnNpb249eCwgbm90IHBlcnBldHVhdGUgaXQuLi4NCg0KLS0g
DQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRBcHAN
ClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0K
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 15:54 ` Myklebust, Trond
@ 2012-11-19 15:58 ` Steve Dickson
2012-11-19 16:02 ` Myklebust, Trond
0 siblings, 1 reply; 14+ messages in thread
From: Steve Dickson @ 2012-11-19 15:58 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Linux NFS Mailing List
On 19/11/12 10:54, Myklebust, Trond wrote:
> On Mon, 2012-11-19 at 10:43 -0500, Steve Dickson wrote:
>> This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
>> the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
>> or "nfsvers=4,minorversion=1" options.
>>
>
> NACK.
>
> If you are going to do this, then please do it only for kernels that
> don't support the "vers=4.1" syntax. i.e. anything older than Linux-3.4.
This is the intention...
>
> We want to get rid of minorversion=x, not perpetuate it...
>
Understood... But that is not option in some worlds... ;-)
steved.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 15:58 ` Steve Dickson
@ 2012-11-19 16:02 ` Myklebust, Trond
2012-11-19 16:14 ` Steve Dickson
0 siblings, 1 reply; 14+ messages in thread
From: Myklebust, Trond @ 2012-11-19 16:02 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
T24gTW9uLCAyMDEyLTExLTE5IGF0IDEwOjU4IC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0K
PiANCj4gT24gMTkvMTEvMTIgMTA6NTQsIE15a2xlYnVzdCwgVHJvbmQgd3JvdGU6DQo+ID4gT24g
TW9uLCAyMDEyLTExLTE5IGF0IDEwOjQzIC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0KPiA+
PiBUaGlzIHBhdGNoIHdpbGwgY29udmVydCAtbyB2NC4xLCB2ZXJzPTQuMSBvciBuZnN2ZXJzPTQu
MSBpbnRvDQo+ID4+IHRoZSBjb3JyZXNwb25kaW5nICJ2NCxtaW5vcnZlcnNpb249MSIsICJ2ZXJz
PTQsbWlub3J2ZXJzaW9uPTEiDQo+ID4+IG9yICJuZnN2ZXJzPTQsbWlub3J2ZXJzaW9uPTEiIG9w
dGlvbnMuDQo+ID4+DQo+ID4gDQo+ID4gTkFDSy4NCj4gPiANCj4gPiBJZiB5b3UgYXJlIGdvaW5n
IHRvIGRvIHRoaXMsIHRoZW4gcGxlYXNlIGRvIGl0IG9ubHkgZm9yIGtlcm5lbHMgdGhhdA0KPiA+
IGRvbid0IHN1cHBvcnQgdGhlICJ2ZXJzPTQuMSIgc3ludGF4LiBpLmUuIGFueXRoaW5nIG9sZGVy
IHRoYW4gTGludXgtMy40Lg0KPiBUaGlzIGlzIHRoZSBpbnRlbnRpb24uLi4gDQo+IA0KPiA+IA0K
PiA+IFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBtaW5vcnZlcnNpb249eCwgbm90IHBlcnBldHVhdGUg
aXQuLi4NCj4gPiANCj4gVW5kZXJzdG9vZC4uLiBCdXQgdGhhdCBpcyBub3Qgb3B0aW9uIGluIHNv
bWUgd29ybGRzLi4uIDstKSANCg0KU3VyZSBpdCBpcy4gVGhlIG1vdW50IHByb2dyYW0gY2FuIGNv
bnRpbnVlIHRvIHBhcnNlIG1pbm9ydmVyc2lvbj0gYWZ0ZXINCml0IGlzIGdvbmUgZnJvbSB0aGUg
a2VybmVsIGFuZCBjb252ZXJ0IGl0IGludG8gdGhlIHZlcnM9NC54IHN5bnRheC4NCg0KLS0gDQpU
cm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRBcHANClRy
b25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0K
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 16:02 ` Myklebust, Trond
@ 2012-11-19 16:14 ` Steve Dickson
2012-11-19 16:24 ` Myklebust, Trond
0 siblings, 1 reply; 14+ messages in thread
From: Steve Dickson @ 2012-11-19 16:14 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Linux NFS Mailing List
On 19/11/12 11:02, Myklebust, Trond wrote:
> On Mon, 2012-11-19 at 10:58 -0500, Steve Dickson wrote:
>>
>> On 19/11/12 10:54, Myklebust, Trond wrote:
>>> On Mon, 2012-11-19 at 10:43 -0500, Steve Dickson wrote:
>>>> This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
>>>> the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
>>>> or "nfsvers=4,minorversion=1" options.
>>>>
>>>
>>> NACK.
>>>
>>> If you are going to do this, then please do it only for kernels that
>>> don't support the "vers=4.1" syntax. i.e. anything older than Linux-3.4.
>> This is the intention...
>>
>>>
>>> We want to get rid of minorversion=x, not perpetuate it...
>>>
>> Understood... But that is not option in some worlds... ;-)
>
> Sure it is. The mount program can continue to parse minorversion= after
> it is gone from the kernel and convert it into the vers=4.x syntax.
>
Basically what I'm doing now, with the exception of not adding
the minorversion=1 options...
BTW, there is a bug in the -o v4.1 current logic...
mount -o v4.1 produces both "v4.1,vers=4,..." in the string that given
to the kernel which does not seem right... I would assume just a "v4.1,.."
should be pumped down..
steved.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 16:14 ` Steve Dickson
@ 2012-11-19 16:24 ` Myklebust, Trond
2012-11-19 18:11 ` Chuck Lever
0 siblings, 1 reply; 14+ messages in thread
From: Myklebust, Trond @ 2012-11-19 16:24 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
T24gTW9uLCAyMDEyLTExLTE5IGF0IDExOjE0IC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0K
PiANCj4gT24gMTkvMTEvMTIgMTE6MDIsIE15a2xlYnVzdCwgVHJvbmQgd3JvdGU6DQo+ID4gT24g
TW9uLCAyMDEyLTExLTE5IGF0IDEwOjU4IC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0KPiA+
Pg0KPiA+PiBPbiAxOS8xMS8xMiAxMDo1NCwgTXlrbGVidXN0LCBUcm9uZCB3cm90ZToNCj4gPj4+
IE9uIE1vbiwgMjAxMi0xMS0xOSBhdCAxMDo0MyAtMDUwMCwgU3RldmUgRGlja3NvbiB3cm90ZToN
Cj4gPj4+PiBUaGlzIHBhdGNoIHdpbGwgY29udmVydCAtbyB2NC4xLCB2ZXJzPTQuMSBvciBuZnN2
ZXJzPTQuMSBpbnRvDQo+ID4+Pj4gdGhlIGNvcnJlc3BvbmRpbmcgInY0LG1pbm9ydmVyc2lvbj0x
IiwgInZlcnM9NCxtaW5vcnZlcnNpb249MSINCj4gPj4+PiBvciAibmZzdmVycz00LG1pbm9ydmVy
c2lvbj0xIiBvcHRpb25zLg0KPiA+Pj4+DQo+ID4+Pg0KPiA+Pj4gTkFDSy4NCj4gPj4+DQo+ID4+
PiBJZiB5b3UgYXJlIGdvaW5nIHRvIGRvIHRoaXMsIHRoZW4gcGxlYXNlIGRvIGl0IG9ubHkgZm9y
IGtlcm5lbHMgdGhhdA0KPiA+Pj4gZG9uJ3Qgc3VwcG9ydCB0aGUgInZlcnM9NC4xIiBzeW50YXgu
IGkuZS4gYW55dGhpbmcgb2xkZXIgdGhhbiBMaW51eC0zLjQuDQo+ID4+IFRoaXMgaXMgdGhlIGlu
dGVudGlvbi4uLiANCj4gPj4NCj4gPj4+DQo+ID4+PiBXZSB3YW50IHRvIGdldCByaWQgb2YgbWlu
b3J2ZXJzaW9uPXgsIG5vdCBwZXJwZXR1YXRlIGl0Li4uDQo+ID4+Pg0KPiA+PiBVbmRlcnN0b29k
Li4uIEJ1dCB0aGF0IGlzIG5vdCBvcHRpb24gaW4gc29tZSB3b3JsZHMuLi4gOy0pIA0KPiA+IA0K
PiA+IFN1cmUgaXQgaXMuIFRoZSBtb3VudCBwcm9ncmFtIGNhbiBjb250aW51ZSB0byBwYXJzZSBt
aW5vcnZlcnNpb249IGFmdGVyDQo+ID4gaXQgaXMgZ29uZSBmcm9tIHRoZSBrZXJuZWwgYW5kIGNv
bnZlcnQgaXQgaW50byB0aGUgdmVycz00Lnggc3ludGF4Lg0KPiA+IA0KPiBCYXNpY2FsbHkgd2hh
dCBJJ20gZG9pbmcgbm93LCB3aXRoIHRoZSBleGNlcHRpb24gb2Ygbm90IGFkZGluZw0KPiB0aGUg
bWlub3J2ZXJzaW9uPTEgb3B0aW9ucy4uLiANCj4gDQo+IEJUVywgdGhlcmUgaXMgYSBidWcgaW4g
dGhlIC1vIHY0LjEgY3VycmVudCBsb2dpYy4uLiANCj4gDQo+IG1vdW50IC1vIHY0LjEgcHJvZHVj
ZXMgYm90aCAidjQuMSx2ZXJzPTQsLi4uIiBpbiB0aGUgc3RyaW5nIHRoYXQgZ2l2ZW4NCj4gdG8g
dGhlIGtlcm5lbCB3aGljaCBkb2VzIG5vdCBzZWVtIHJpZ2h0Li4uIEkgd291bGQgYXNzdW1lIGp1
c3QgYSAidjQuMSwuLiINCj4gc2hvdWxkIGJlIHB1bXBlZCBkb3duLi4gDQoNClllcy4gSSByZW1l
bWJlciBzZWVpbmcgdGhhdCBpbiB0aGUgQmFrZWF0aG9uIHRlc3RzLi4uIEkgYWdyZWUgdGhhdCB3
ZQ0KanVzdCBuZWVkIHRoZSB2ZXJzPTQuMS4gVGhlIGV4dHJhICd2ZXJzPTQnIGlzbid0IGhhcm1m
dWwgaW4gdGhhdCB0aGUNCmtlcm5lbCB3b24ndCBpbnRlcnByZXQgaXQgYXMgdmVycz00LjAsIGJ1
dCBpdCB3b3VsZCBiZSBuaWNlIHRvIGdldCByaWQNCm9mIGl0Lg0KDQpFc3NlbnRpYWxseSwgdGhl
IHBsYW4gaXMgdGhhdCBzb21lIHRpbWUgaW4gdGhlIGZ1dHVyZSB3ZSB3aWxsIHdhbnQgdG8NCmhh
dmUgJ3ZlcnM9NCcgYmUgdGhlICdhdXRvLW5lZ290aWF0ZSBtaW5vciB2ZXJzaW9uJyBzeW50YXgs
IHdoaWxlDQp2ZXJzPTQueCB3aWxsIGJlIHRoZSAndXNlIG1pbm9yIHZlcnNpb24geCcgc3ludGF4
Lg0KT2YgY291cnNlLCBhdXRvLW5lZ290aWF0aW9uIHNob3VsZCBiZSBkcml2ZW4gYnkgdGhlICdt
b3VudCcgcHJvZ3JhbSwNCndoaWNoIHdpbGwgYmUgdXNpbmcgdGhlICd2ZXJzPTQueCcgc3ludGF4
IGluIHRoZSBtb3VudCBzeXN0ZW0gY2FsbCwgZm9yDQp2YXJpb3VzIHZhbHVlcyBvZiAneCcsIHVu
dGlsIGl0IGFjaGlldmVzIHN1Y2Nlc3MuDQoNCi0tIA0KVHJvbmQgTXlrbGVidXN0DQpMaW51eCBO
RlMgY2xpZW50IG1haW50YWluZXINCg0KTmV0QXBwDQpUcm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNv
bQ0Kd3d3Lm5ldGFwcC5jb20NCg==
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 16:24 ` Myklebust, Trond
@ 2012-11-19 18:11 ` Chuck Lever
2012-11-19 18:29 ` Myklebust, Trond
0 siblings, 1 reply; 14+ messages in thread
From: Chuck Lever @ 2012-11-19 18:11 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Steve Dickson, Linux NFS Mailing List
On Nov 19, 2012, at 11:24 AM, "Myklebust, Trond" <Trond.Myklebust@netapp.com> wrote:
> On Mon, 2012-11-19 at 11:14 -0500, Steve Dickson wrote:
>>
>> On 19/11/12 11:02, Myklebust, Trond wrote:
>>> On Mon, 2012-11-19 at 10:58 -0500, Steve Dickson wrote:
>>>>
>>>> On 19/11/12 10:54, Myklebust, Trond wrote:
>>>>> On Mon, 2012-11-19 at 10:43 -0500, Steve Dickson wrote:
>>>>>> This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
>>>>>> the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
>>>>>> or "nfsvers=4,minorversion=1" options.
>>>>>>
>>>>>
>>>>> NACK.
>>>>>
>>>>> If you are going to do this, then please do it only for kernels that
>>>>> don't support the "vers=4.1" syntax. i.e. anything older than Linux-3.4.
>>>> This is the intention...
>>>>
>>>>>
>>>>> We want to get rid of minorversion=x, not perpetuate it...
>>>>>
>>>> Understood... But that is not option in some worlds... ;-)
>>>
>>> Sure it is. The mount program can continue to parse minorversion= after
>>> it is gone from the kernel and convert it into the vers=4.x syntax.
>>>
>> Basically what I'm doing now, with the exception of not adding
>> the minorversion=1 options...
>>
>> BTW, there is a bug in the -o v4.1 current logic...
>>
>> mount -o v4.1 produces both "v4.1,vers=4,..." in the string that given
>> to the kernel which does not seem right... I would assume just a "v4.1,.."
>> should be pumped down..
>
> Yes. I remember seeing that in the Bakeathon tests... I agree that we
> just need the vers=4.1. The extra 'vers=4' isn't harmful in that the
> kernel won't interpret it as vers=4.0, but it would be nice to get rid
> of it.
>
> Essentially, the plan is that some time in the future we will want to
> have 'vers=4' be the 'auto-negotiate minor version' syntax, while
> vers=4.x will be the 'use minor version x' syntax.
> Of course, auto-negotiation should be driven by the 'mount' program,
> which will be using the 'vers=4.x' syntax in the mount system call, for
> various values of 'x', until it achieves success.
Interesting. I assume you want "mount.nfs" to do this to allow some kind of auto-negotiation policy to be specified (say, via the mount command configuration file).
As a design precursor, can you speculate on how the mount command would go about negotiating the minor version? mount.nfs cannot use protocol versions advertised by rpcbind, for instance, and neither can a simple NULL request identify which minor versions are available on the server.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 15:43 [RFC PATCH V2] mount: Added the -o v4.1 mount option Steve Dickson
2012-11-19 15:54 ` Myklebust, Trond
@ 2012-11-19 18:21 ` Chuck Lever
2012-11-19 21:51 ` Steve Dickson
1 sibling, 1 reply; 14+ messages in thread
From: Chuck Lever @ 2012-11-19 18:21 UTC (permalink / raw)
To: Steve Dickson; +Cc: Linux NFS Mailing List
On Nov 19, 2012, at 10:43 AM, Steve Dickson <steved@redhat.com> wrote:
> This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
> the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
> or "nfsvers=4,minorversion=1" options.
I had a couple of thoughts about this.
As Trond points out, mount.nfs really should not use option "minorversion=" here, except on kernels that do not support "vers=4.x". That will add complexity, certainly.
In addition, I think we can expect the need for support for "v4.2" and "v4.0" (perhaps) in the near future, and then subsequently "v4.3" and so on. Since that is close at hand, we should consider the need to add those as we design this.
Perhaps instead of editing the mount option string directly in nfs_nfs_version(), you might add a "*minorversion" argument to nfs_nfs_version() function and let its callers finish the work, just as is done with "*version" today. That might also make it easier to add the logic that changes behavior based on kernel version.
>
> Signed-off-by: Steve Dickson <steved@redhat.com>
> ---
> utils/mount/network.c | 18 ++++++++++++++++--
> utils/mount/nfs.man | 13 +++++++++++++
> 2 files changed, 29 insertions(+), 2 deletions(-)
>
> diff --git a/utils/mount/network.c b/utils/mount/network.c
> index e7bd522..36aa03b 100644
> --- a/utils/mount/network.c
> +++ b/utils/mount/network.c
> @@ -94,6 +94,7 @@ static const char *nfs_version_opttbl[] = {
> "v2",
> "v3",
> "v4",
> + "v4.1",
> "vers",
> "nfsvers",
> NULL,
> @@ -1244,11 +1245,20 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version)
> case 2: /* v4 */
> *version = 4;
> return 1;
> - case 3: /* vers */
> + case 3: /* v4.1 */
> + *version = 4;
> + po_remove_all(options, "v4.1");
> + po_append(options, "v4,minorversion=1");
> + return 1;
> + case 4: /* vers */
> switch (po_get_numeric(options, "vers", &tmp)) {
> case PO_FOUND:
> if (tmp >= 2 && tmp <= 4) {
> *version = tmp;
> + if (strcmp(po_get(options, "vers"), "4.1") == 0) {
> + po_remove_all(options, "vers");
> + po_append(options, "vers=4,minorversion=1");
> + }
> return 1;
> }
> return 0;
> @@ -1261,11 +1271,15 @@ nfs_nfs_version(struct mount_options *options, unsigned long *version)
> progname);
> return 0;
> }
> - case 4: /* nfsvers */
> + case 5: /* nfsvers */
> switch (po_get_numeric(options, "nfsvers", &tmp)) {
> case PO_FOUND:
> if (tmp >= 2 && tmp <= 4) {
> *version = tmp;
> + if (strcmp(po_get(options, "nfsvers"), "4.1") == 0) {
> + po_remove_all(options, "nfsvers");
> + po_append(options, "nfsvers=4,minorversion=1");
> + }
> return 1;
> }
> return 0;
> diff --git a/utils/mount/nfs.man b/utils/mount/nfs.man
> index c15de98..8d1bb56 100644
> --- a/utils/mount/nfs.man
> +++ b/utils/mount/nfs.man
> @@ -762,6 +762,19 @@ by 'nolock'/'lock' mount option.
> Use these options, along with the options in the first subsection above,
> for NFS version 4 and newer.
> .TP 1.5i
> +.BI minorversion= n
> +Specifies the protocol minor version number.
> +NFSv4 introduces "minor versioning," where NFS protocol enhancements can
> +be introduced without bumping the NFS protocol version number.
> +.IP
> +The minor version can also be be specified using the
> +.B vers=
> +option.
> +For example, specifying
> +.B vers=4.1
> +is the same as specifying
> +.BR vers=4,minorversion=1 .
> +.TP 1.5i
> .BI proto= netid
> The
> .I netid
> --
> 1.7.11.7
>
> --
> 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
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 18:11 ` Chuck Lever
@ 2012-11-19 18:29 ` Myklebust, Trond
2012-11-19 18:39 ` Chuck Lever
2012-11-19 21:40 ` Steve Dickson
0 siblings, 2 replies; 14+ messages in thread
From: Myklebust, Trond @ 2012-11-19 18:29 UTC (permalink / raw)
To: Chuck Lever; +Cc: Steve Dickson, Linux NFS Mailing List
T24gTW9uLCAyMDEyLTExLTE5IGF0IDEzOjExIC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g
T24gTm92IDE5LCAyMDEyLCBhdCAxMToyNCBBTSwgIk15a2xlYnVzdCwgVHJvbmQiIDxUcm9uZC5N
eWtsZWJ1c3RAbmV0YXBwLmNvbT4gd3JvdGU6DQo+IA0KPiA+IE9uIE1vbiwgMjAxMi0xMS0xOSBh
dCAxMToxNCAtMDUwMCwgU3RldmUgRGlja3NvbiB3cm90ZToNCj4gPj4gDQo+ID4+IE9uIDE5LzEx
LzEyIDExOjAyLCBNeWtsZWJ1c3QsIFRyb25kIHdyb3RlOg0KPiA+Pj4gT24gTW9uLCAyMDEyLTEx
LTE5IGF0IDEwOjU4IC0wNTAwLCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0KPiA+Pj4+IA0KPiA+Pj4+
IE9uIDE5LzExLzEyIDEwOjU0LCBNeWtsZWJ1c3QsIFRyb25kIHdyb3RlOg0KPiA+Pj4+PiBPbiBN
b24sIDIwMTItMTEtMTkgYXQgMTA6NDMgLTA1MDAsIFN0ZXZlIERpY2tzb24gd3JvdGU6DQo+ID4+
Pj4+PiBUaGlzIHBhdGNoIHdpbGwgY29udmVydCAtbyB2NC4xLCB2ZXJzPTQuMSBvciBuZnN2ZXJz
PTQuMSBpbnRvDQo+ID4+Pj4+PiB0aGUgY29ycmVzcG9uZGluZyAidjQsbWlub3J2ZXJzaW9uPTEi
LCAidmVycz00LG1pbm9ydmVyc2lvbj0xIg0KPiA+Pj4+Pj4gb3IgIm5mc3ZlcnM9NCxtaW5vcnZl
cnNpb249MSIgb3B0aW9ucy4NCj4gPj4+Pj4+IA0KPiA+Pj4+PiANCj4gPj4+Pj4gTkFDSy4NCj4g
Pj4+Pj4gDQo+ID4+Pj4+IElmIHlvdSBhcmUgZ29pbmcgdG8gZG8gdGhpcywgdGhlbiBwbGVhc2Ug
ZG8gaXQgb25seSBmb3Iga2VybmVscyB0aGF0DQo+ID4+Pj4+IGRvbid0IHN1cHBvcnQgdGhlICJ2
ZXJzPTQuMSIgc3ludGF4LiBpLmUuIGFueXRoaW5nIG9sZGVyIHRoYW4gTGludXgtMy40Lg0KPiA+
Pj4+IFRoaXMgaXMgdGhlIGludGVudGlvbi4uLiANCj4gPj4+PiANCj4gPj4+Pj4gDQo+ID4+Pj4+
IFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBtaW5vcnZlcnNpb249eCwgbm90IHBlcnBldHVhdGUgaXQu
Li4NCj4gPj4+Pj4gDQo+ID4+Pj4gVW5kZXJzdG9vZC4uLiBCdXQgdGhhdCBpcyBub3Qgb3B0aW9u
IGluIHNvbWUgd29ybGRzLi4uIDstKSANCj4gPj4+IA0KPiA+Pj4gU3VyZSBpdCBpcy4gVGhlIG1v
dW50IHByb2dyYW0gY2FuIGNvbnRpbnVlIHRvIHBhcnNlIG1pbm9ydmVyc2lvbj0gYWZ0ZXINCj4g
Pj4+IGl0IGlzIGdvbmUgZnJvbSB0aGUga2VybmVsIGFuZCBjb252ZXJ0IGl0IGludG8gdGhlIHZl
cnM9NC54IHN5bnRheC4NCj4gPj4+IA0KPiA+PiBCYXNpY2FsbHkgd2hhdCBJJ20gZG9pbmcgbm93
LCB3aXRoIHRoZSBleGNlcHRpb24gb2Ygbm90IGFkZGluZw0KPiA+PiB0aGUgbWlub3J2ZXJzaW9u
PTEgb3B0aW9ucy4uLiANCj4gPj4gDQo+ID4+IEJUVywgdGhlcmUgaXMgYSBidWcgaW4gdGhlIC1v
IHY0LjEgY3VycmVudCBsb2dpYy4uLiANCj4gPj4gDQo+ID4+IG1vdW50IC1vIHY0LjEgcHJvZHVj
ZXMgYm90aCAidjQuMSx2ZXJzPTQsLi4uIiBpbiB0aGUgc3RyaW5nIHRoYXQgZ2l2ZW4NCj4gPj4g
dG8gdGhlIGtlcm5lbCB3aGljaCBkb2VzIG5vdCBzZWVtIHJpZ2h0Li4uIEkgd291bGQgYXNzdW1l
IGp1c3QgYSAidjQuMSwuLiINCj4gPj4gc2hvdWxkIGJlIHB1bXBlZCBkb3duLi4gDQo+ID4gDQo+
ID4gWWVzLiBJIHJlbWVtYmVyIHNlZWluZyB0aGF0IGluIHRoZSBCYWtlYXRob24gdGVzdHMuLi4g
SSBhZ3JlZSB0aGF0IHdlDQo+ID4ganVzdCBuZWVkIHRoZSB2ZXJzPTQuMS4gVGhlIGV4dHJhICd2
ZXJzPTQnIGlzbid0IGhhcm1mdWwgaW4gdGhhdCB0aGUNCj4gPiBrZXJuZWwgd29uJ3QgaW50ZXJw
cmV0IGl0IGFzIHZlcnM9NC4wLCBidXQgaXQgd291bGQgYmUgbmljZSB0byBnZXQgcmlkDQo+ID4g
b2YgaXQuDQo+ID4gDQo+ID4gRXNzZW50aWFsbHksIHRoZSBwbGFuIGlzIHRoYXQgc29tZSB0aW1l
IGluIHRoZSBmdXR1cmUgd2Ugd2lsbCB3YW50IHRvDQo+ID4gaGF2ZSAndmVycz00JyBiZSB0aGUg
J2F1dG8tbmVnb3RpYXRlIG1pbm9yIHZlcnNpb24nIHN5bnRheCwgd2hpbGUNCj4gPiB2ZXJzPTQu
eCB3aWxsIGJlIHRoZSAndXNlIG1pbm9yIHZlcnNpb24geCcgc3ludGF4Lg0KPiA+IE9mIGNvdXJz
ZSwgYXV0by1uZWdvdGlhdGlvbiBzaG91bGQgYmUgZHJpdmVuIGJ5IHRoZSAnbW91bnQnIHByb2dy
YW0sDQo+ID4gd2hpY2ggd2lsbCBiZSB1c2luZyB0aGUgJ3ZlcnM9NC54JyBzeW50YXggaW4gdGhl
IG1vdW50IHN5c3RlbSBjYWxsLCBmb3INCj4gPiB2YXJpb3VzIHZhbHVlcyBvZiAneCcsIHVudGls
IGl0IGFjaGlldmVzIHN1Y2Nlc3MuDQo+IA0KPiBJbnRlcmVzdGluZy4gIEkgYXNzdW1lIHlvdSB3
YW50ICJtb3VudC5uZnMiIHRvIGRvIHRoaXMgdG8gYWxsb3cgc29tZSBraW5kIG9mIGF1dG8tbmVn
b3RpYXRpb24gcG9saWN5IHRvIGJlIHNwZWNpZmllZCAoc2F5LCB2aWEgdGhlIG1vdW50IGNvbW1h
bmQgY29uZmlndXJhdGlvbiBmaWxlKS4NCg0KUmlnaHQuIEknZCBsaWtlIHRvIGJlIGFibGUgdG8g
c2V0IERlZmF1bHR2ZXJzPTQuMSBpbiAvZXRjL25mc21vdW50LmNvbmYNCmFuZCBoYXZlIGl0IHdv
cmsuDQoNCj4gQXMgYSBkZXNpZ24gcHJlY3Vyc29yLCBjYW4geW91IHNwZWN1bGF0ZSBvbiBob3cg
dGhlIG1vdW50IGNvbW1hbmQgd291bGQgZ28gYWJvdXQgbmVnb3RpYXRpbmcgdGhlIG1pbm9yIHZl
cnNpb24/ICBtb3VudC5uZnMgY2Fubm90IHVzZSBwcm90b2NvbCB2ZXJzaW9ucyBhZHZlcnRpc2Vk
IGJ5IHJwY2JpbmQsIGZvciBpbnN0YW5jZSwgYW5kIG5laXRoZXIgY2FuIGEgc2ltcGxlIE5VTEwg
cmVxdWVzdCBpZGVudGlmeSB3aGljaCBtaW5vciB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRo
ZSBzZXJ2ZXIuDQoNCk5vdGUgdGhhdCB0aGUgbW91bnQgY29tbWFuZCBzaG91bGQgaW4gYW55IGNh
c2Ugbm90IGJlIHJlbHlpbmcgb24gcnBjYmluZA0KdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRo
ZSBzZXJ2ZXIgc3VwcG9ydHMgTkZTdjQuDQoNCkFzIGZvciBtaW5vciB2ZXJzaW9uIG5lZ290aWF0
aW9uLCBSRkMzNTMwIGFscmVhZHkgdGVsbHMgeW91IGhvdyB0byBkbw0KdGhpczogdGhlIGNsaWVu
dCBoYXMgdG8gc3RhcnQgd2l0aCB0aGUgaGlnaGVzdCB2ZXJzaW9uIHRoYXQgaXQgc3VwcG9ydHMs
DQphbmQgdGhlbiB3YWxrIHRoYXQgbnVtYmVyIGRvd24gdW50aWwgdGhlIHNlcnZlciBzdG9wcyBy
ZXBseWluZyB3aXRoDQpORlM0RVJSX01JTk9SX1ZFUlNfTUlTTUFUQ0guDQoNCk5vdGUgdGhhdCBp
ZiB5b3Ugd2FudCB0byBkbyB0aGlzIGluIHVzZXJsYW5kIGJlZm9yZSBjYWxsaW5nIHRoZSBtb3Vu
dA0Kc3lzY2FsbCwgdGhlbiB0aGUgc3BlYyBkb2VzIGFsbG93IHlvdSB0byAicGluZyIgdGhlIE5G
U3Y0IHNlcnZlciB3aXRoIGFuDQplbXB0eSBDT01QT1VORC4NCg0KLS0gDQpUcm9uZCBNeWtsZWJ1
c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRBcHANClRyb25kLk15a2xlYnVz
dEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0K
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 18:29 ` Myklebust, Trond
@ 2012-11-19 18:39 ` Chuck Lever
2012-11-19 19:04 ` Myklebust, Trond
2012-11-19 21:40 ` Steve Dickson
1 sibling, 1 reply; 14+ messages in thread
From: Chuck Lever @ 2012-11-19 18:39 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Steve Dickson, Linux NFS Mailing List
On Nov 19, 2012, at 1:29 PM, "Myklebust, Trond" <Trond.Myklebust@netapp.com> wrote:
> On Mon, 2012-11-19 at 13:11 -0500, Chuck Lever wrote:
>> On Nov 19, 2012, at 11:24 AM, "Myklebust, Trond" <Trond.Myklebust@netapp.com> wrote:
>>
>>> On Mon, 2012-11-19 at 11:14 -0500, Steve Dickson wrote:
>>>>
>>>> On 19/11/12 11:02, Myklebust, Trond wrote:
>>>>> On Mon, 2012-11-19 at 10:58 -0500, Steve Dickson wrote:
>>>>>>
>>>>>> On 19/11/12 10:54, Myklebust, Trond wrote:
>>>>>>> On Mon, 2012-11-19 at 10:43 -0500, Steve Dickson wrote:
>>>>>>>> This patch will convert -o v4.1, vers=4.1 or nfsvers=4.1 into
>>>>>>>> the corresponding "v4,minorversion=1", "vers=4,minorversion=1"
>>>>>>>> or "nfsvers=4,minorversion=1" options.
>>>>>>>>
>>>>>>>
>>>>>>> NACK.
>>>>>>>
>>>>>>> If you are going to do this, then please do it only for kernels that
>>>>>>> don't support the "vers=4.1" syntax. i.e. anything older than Linux-3.4.
>>>>>> This is the intention...
>>>>>>
>>>>>>>
>>>>>>> We want to get rid of minorversion=x, not perpetuate it...
>>>>>>>
>>>>>> Understood... But that is not option in some worlds... ;-)
>>>>>
>>>>> Sure it is. The mount program can continue to parse minorversion= after
>>>>> it is gone from the kernel and convert it into the vers=4.x syntax.
>>>>>
>>>> Basically what I'm doing now, with the exception of not adding
>>>> the minorversion=1 options...
>>>>
>>>> BTW, there is a bug in the -o v4.1 current logic...
>>>>
>>>> mount -o v4.1 produces both "v4.1,vers=4,..." in the string that given
>>>> to the kernel which does not seem right... I would assume just a "v4.1,.."
>>>> should be pumped down..
>>>
>>> Yes. I remember seeing that in the Bakeathon tests... I agree that we
>>> just need the vers=4.1. The extra 'vers=4' isn't harmful in that the
>>> kernel won't interpret it as vers=4.0, but it would be nice to get rid
>>> of it.
>>>
>>> Essentially, the plan is that some time in the future we will want to
>>> have 'vers=4' be the 'auto-negotiate minor version' syntax, while
>>> vers=4.x will be the 'use minor version x' syntax.
>>> Of course, auto-negotiation should be driven by the 'mount' program,
>>> which will be using the 'vers=4.x' syntax in the mount system call, for
>>> various values of 'x', until it achieves success.
>>
>> Interesting. I assume you want "mount.nfs" to do this to allow some kind of auto-negotiation policy to be specified (say, via the mount command configuration file).
>
> Right. I'd like to be able to set Defaultvers=4.1 in /etc/nfsmount.conf
> and have it work.
>
>> As a design precursor, can you speculate on how the mount command would go about negotiating the minor version? mount.nfs cannot use protocol versions advertised by rpcbind, for instance, and neither can a simple NULL request identify which minor versions are available on the server.
>
> Note that the mount command should in any case not be relying on rpcbind
> to decide whether or not the server supports NFSv4.
>
> As for minor version negotiation, RFC3530 already tells you how to do
> this: the client has to start with the highest version that it supports,
> and then walk that number down until the server stops replying with
> NFS4ERR_MINOR_VERS_MISMATCH.
>
> Note that if you want to do this in userland before calling the mount
> syscall, then the spec does allow you to "ping" the NFSv4 server with an
> empty COMPOUND.
I see: not an NFSv4 NULL, but an NFSv4 COMPOUND that has no operations. That carries a compound header, which would have the minor version number in it.
--
Chuck Lever
chuck[dot]lever[at]oracle[dot]com
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 18:39 ` Chuck Lever
@ 2012-11-19 19:04 ` Myklebust, Trond
2012-11-19 21:15 ` J. Bruce Fields
0 siblings, 1 reply; 14+ messages in thread
From: Myklebust, Trond @ 2012-11-19 19:04 UTC (permalink / raw)
To: Chuck Lever; +Cc: Steve Dickson, Linux NFS Mailing List
T24gTW9uLCAyMDEyLTExLTE5IGF0IDEzOjM5IC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g
T24gTm92IDE5LCAyMDEyLCBhdCAxOjI5IFBNLCAiTXlrbGVidXN0LCBUcm9uZCIgPFRyb25kLk15
a2xlYnVzdEBuZXRhcHAuY29tPiB3cm90ZToNCj4gDQo+ID4gT24gTW9uLCAyMDEyLTExLTE5IGF0
IDEzOjExIC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4gPj4gT24gTm92IDE5LCAyMDEyLCBh
dCAxMToyNCBBTSwgIk15a2xlYnVzdCwgVHJvbmQiIDxUcm9uZC5NeWtsZWJ1c3RAbmV0YXBwLmNv
bT4gd3JvdGU6DQo+ID4+IA0KPiA+Pj4gT24gTW9uLCAyMDEyLTExLTE5IGF0IDExOjE0IC0wNTAw
LCBTdGV2ZSBEaWNrc29uIHdyb3RlOg0KPiA+Pj4+IA0KPiA+Pj4+IE9uIDE5LzExLzEyIDExOjAy
LCBNeWtsZWJ1c3QsIFRyb25kIHdyb3RlOg0KPiA+Pj4+PiBPbiBNb24sIDIwMTItMTEtMTkgYXQg
MTA6NTggLTA1MDAsIFN0ZXZlIERpY2tzb24gd3JvdGU6DQo+ID4+Pj4+PiANCj4gPj4+Pj4+IE9u
IDE5LzExLzEyIDEwOjU0LCBNeWtsZWJ1c3QsIFRyb25kIHdyb3RlOg0KPiA+Pj4+Pj4+IE9uIE1v
biwgMjAxMi0xMS0xOSBhdCAxMDo0MyAtMDUwMCwgU3RldmUgRGlja3NvbiB3cm90ZToNCj4gPj4+
Pj4+Pj4gVGhpcyBwYXRjaCB3aWxsIGNvbnZlcnQgLW8gdjQuMSwgdmVycz00LjEgb3IgbmZzdmVy
cz00LjEgaW50bw0KPiA+Pj4+Pj4+PiB0aGUgY29ycmVzcG9uZGluZyAidjQsbWlub3J2ZXJzaW9u
PTEiLCAidmVycz00LG1pbm9ydmVyc2lvbj0xIg0KPiA+Pj4+Pj4+PiBvciAibmZzdmVycz00LG1p
bm9ydmVyc2lvbj0xIiBvcHRpb25zLg0KPiA+Pj4+Pj4+PiANCj4gPj4+Pj4+PiANCj4gPj4+Pj4+
PiBOQUNLLg0KPiA+Pj4+Pj4+IA0KPiA+Pj4+Pj4+IElmIHlvdSBhcmUgZ29pbmcgdG8gZG8gdGhp
cywgdGhlbiBwbGVhc2UgZG8gaXQgb25seSBmb3Iga2VybmVscyB0aGF0DQo+ID4+Pj4+Pj4gZG9u
J3Qgc3VwcG9ydCB0aGUgInZlcnM9NC4xIiBzeW50YXguIGkuZS4gYW55dGhpbmcgb2xkZXIgdGhh
biBMaW51eC0zLjQuDQo+ID4+Pj4+PiBUaGlzIGlzIHRoZSBpbnRlbnRpb24uLi4gDQo+ID4+Pj4+
PiANCj4gPj4+Pj4+PiANCj4gPj4+Pj4+PiBXZSB3YW50IHRvIGdldCByaWQgb2YgbWlub3J2ZXJz
aW9uPXgsIG5vdCBwZXJwZXR1YXRlIGl0Li4uDQo+ID4+Pj4+Pj4gDQo+ID4+Pj4+PiBVbmRlcnN0
b29kLi4uIEJ1dCB0aGF0IGlzIG5vdCBvcHRpb24gaW4gc29tZSB3b3JsZHMuLi4gOy0pIA0KPiA+
Pj4+PiANCj4gPj4+Pj4gU3VyZSBpdCBpcy4gVGhlIG1vdW50IHByb2dyYW0gY2FuIGNvbnRpbnVl
IHRvIHBhcnNlIG1pbm9ydmVyc2lvbj0gYWZ0ZXINCj4gPj4+Pj4gaXQgaXMgZ29uZSBmcm9tIHRo
ZSBrZXJuZWwgYW5kIGNvbnZlcnQgaXQgaW50byB0aGUgdmVycz00Lnggc3ludGF4Lg0KPiA+Pj4+
PiANCj4gPj4+PiBCYXNpY2FsbHkgd2hhdCBJJ20gZG9pbmcgbm93LCB3aXRoIHRoZSBleGNlcHRp
b24gb2Ygbm90IGFkZGluZw0KPiA+Pj4+IHRoZSBtaW5vcnZlcnNpb249MSBvcHRpb25zLi4uIA0K
PiA+Pj4+IA0KPiA+Pj4+IEJUVywgdGhlcmUgaXMgYSBidWcgaW4gdGhlIC1vIHY0LjEgY3VycmVu
dCBsb2dpYy4uLiANCj4gPj4+PiANCj4gPj4+PiBtb3VudCAtbyB2NC4xIHByb2R1Y2VzIGJvdGgg
InY0LjEsdmVycz00LC4uLiIgaW4gdGhlIHN0cmluZyB0aGF0IGdpdmVuDQo+ID4+Pj4gdG8gdGhl
IGtlcm5lbCB3aGljaCBkb2VzIG5vdCBzZWVtIHJpZ2h0Li4uIEkgd291bGQgYXNzdW1lIGp1c3Qg
YSAidjQuMSwuLiINCj4gPj4+PiBzaG91bGQgYmUgcHVtcGVkIGRvd24uLiANCj4gPj4+IA0KPiA+
Pj4gWWVzLiBJIHJlbWVtYmVyIHNlZWluZyB0aGF0IGluIHRoZSBCYWtlYXRob24gdGVzdHMuLi4g
SSBhZ3JlZSB0aGF0IHdlDQo+ID4+PiBqdXN0IG5lZWQgdGhlIHZlcnM9NC4xLiBUaGUgZXh0cmEg
J3ZlcnM9NCcgaXNuJ3QgaGFybWZ1bCBpbiB0aGF0IHRoZQ0KPiA+Pj4ga2VybmVsIHdvbid0IGlu
dGVycHJldCBpdCBhcyB2ZXJzPTQuMCwgYnV0IGl0IHdvdWxkIGJlIG5pY2UgdG8gZ2V0IHJpZA0K
PiA+Pj4gb2YgaXQuDQo+ID4+PiANCj4gPj4+IEVzc2VudGlhbGx5LCB0aGUgcGxhbiBpcyB0aGF0
IHNvbWUgdGltZSBpbiB0aGUgZnV0dXJlIHdlIHdpbGwgd2FudCB0bw0KPiA+Pj4gaGF2ZSAndmVy
cz00JyBiZSB0aGUgJ2F1dG8tbmVnb3RpYXRlIG1pbm9yIHZlcnNpb24nIHN5bnRheCwgd2hpbGUN
Cj4gPj4+IHZlcnM9NC54IHdpbGwgYmUgdGhlICd1c2UgbWlub3IgdmVyc2lvbiB4JyBzeW50YXgu
DQo+ID4+PiBPZiBjb3Vyc2UsIGF1dG8tbmVnb3RpYXRpb24gc2hvdWxkIGJlIGRyaXZlbiBieSB0
aGUgJ21vdW50JyBwcm9ncmFtLA0KPiA+Pj4gd2hpY2ggd2lsbCBiZSB1c2luZyB0aGUgJ3ZlcnM9
NC54JyBzeW50YXggaW4gdGhlIG1vdW50IHN5c3RlbSBjYWxsLCBmb3INCj4gPj4+IHZhcmlvdXMg
dmFsdWVzIG9mICd4JywgdW50aWwgaXQgYWNoaWV2ZXMgc3VjY2Vzcy4NCj4gPj4gDQo+ID4+IElu
dGVyZXN0aW5nLiAgSSBhc3N1bWUgeW91IHdhbnQgIm1vdW50Lm5mcyIgdG8gZG8gdGhpcyB0byBh
bGxvdyBzb21lIGtpbmQgb2YgYXV0by1uZWdvdGlhdGlvbiBwb2xpY3kgdG8gYmUgc3BlY2lmaWVk
IChzYXksIHZpYSB0aGUgbW91bnQgY29tbWFuZCBjb25maWd1cmF0aW9uIGZpbGUpLg0KPiA+IA0K
PiA+IFJpZ2h0LiBJJ2QgbGlrZSB0byBiZSBhYmxlIHRvIHNldCBEZWZhdWx0dmVycz00LjEgaW4g
L2V0Yy9uZnNtb3VudC5jb25mDQo+ID4gYW5kIGhhdmUgaXQgd29yay4NCj4gPiANCj4gPj4gQXMg
YSBkZXNpZ24gcHJlY3Vyc29yLCBjYW4geW91IHNwZWN1bGF0ZSBvbiBob3cgdGhlIG1vdW50IGNv
bW1hbmQgd291bGQgZ28gYWJvdXQgbmVnb3RpYXRpbmcgdGhlIG1pbm9yIHZlcnNpb24/ICBtb3Vu
dC5uZnMgY2Fubm90IHVzZSBwcm90b2NvbCB2ZXJzaW9ucyBhZHZlcnRpc2VkIGJ5IHJwY2JpbmQs
IGZvciBpbnN0YW5jZSwgYW5kIG5laXRoZXIgY2FuIGEgc2ltcGxlIE5VTEwgcmVxdWVzdCBpZGVu
dGlmeSB3aGljaCBtaW5vciB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHRoZSBzZXJ2ZXIuDQo+
ID4gDQo+ID4gTm90ZSB0aGF0IHRoZSBtb3VudCBjb21tYW5kIHNob3VsZCBpbiBhbnkgY2FzZSBu
b3QgYmUgcmVseWluZyBvbiBycGNiaW5kDQo+ID4gdG8gZGVjaWRlIHdoZXRoZXIgb3Igbm90IHRo
ZSBzZXJ2ZXIgc3VwcG9ydHMgTkZTdjQuDQo+ID4gDQo+ID4gQXMgZm9yIG1pbm9yIHZlcnNpb24g
bmVnb3RpYXRpb24sIFJGQzM1MzAgYWxyZWFkeSB0ZWxscyB5b3UgaG93IHRvIGRvDQo+ID4gdGhp
czogdGhlIGNsaWVudCBoYXMgdG8gc3RhcnQgd2l0aCB0aGUgaGlnaGVzdCB2ZXJzaW9uIHRoYXQg
aXQgc3VwcG9ydHMsDQo+ID4gYW5kIHRoZW4gd2FsayB0aGF0IG51bWJlciBkb3duIHVudGlsIHRo
ZSBzZXJ2ZXIgc3RvcHMgcmVwbHlpbmcgd2l0aA0KPiA+IE5GUzRFUlJfTUlOT1JfVkVSU19NSVNN
QVRDSC4NCj4gPiANCj4gPiBOb3RlIHRoYXQgaWYgeW91IHdhbnQgdG8gZG8gdGhpcyBpbiB1c2Vy
bGFuZCBiZWZvcmUgY2FsbGluZyB0aGUgbW91bnQNCj4gPiBzeXNjYWxsLCB0aGVuIHRoZSBzcGVj
IGRvZXMgYWxsb3cgeW91IHRvICJwaW5nIiB0aGUgTkZTdjQgc2VydmVyIHdpdGggYW4NCj4gPiBl
bXB0eSBDT01QT1VORC4NCj4gDQo+IEkgc2VlOiBub3QgYW4gTkZTdjQgTlVMTCwgYnV0IGFuIE5G
U3Y0IENPTVBPVU5EIHRoYXQgaGFzIG5vIG9wZXJhdGlvbnMuICBUaGF0IGNhcnJpZXMgYSBjb21w
b3VuZCBoZWFkZXIsIHdoaWNoIHdvdWxkIGhhdmUgdGhlIG1pbm9yIHZlcnNpb24gbnVtYmVyIGlu
IGl0Lg0KDQpSaWdodC4gU2VjdGlvbiAxNi4yLjQgb2YgUkZDNTY2MSB3b3VsZCBhcHBlYXIgdG8g
YWxsb3cgdGhlIHNlcnZlciB0bw0KcmV0dXJuIHRoZSBmb2xsb3dpbmcgZXJyb3JzIGluIHRoZSBj
YXNlIG9mIGFuIGVtcHR5IENPTVBPVU5EOiBORlM0X09LLA0KTkZTNEVSUl9ERUxBWSwgTkZTNEVS
Ul9NSU5PUl9WRVJTX01JU01BVENIIGFuZCBORlM0RVJSX1NFUlZFUkZBVUxULg0KDQpUaGUgb3Ro
ZXIgZXJyb3JzIHNob3VsZG4ndCBhcHBseSBhdCBhbGwgdG8gYSB6ZXJvLW9wIGNvbXBvdW5kDQoo
TkZTNEVSUl9CQURYRFIsIE5GUzRFUlJfVE9PX01BTllfT1BTLCBORlM0RVJSX1JFUF9UT09fQklH
X1RPX0NBQ0hFKSwgb3INCnNob3VsZCBvbmx5IGFwcGx5IGlmIHlvdSBoYXZlIGEgbm9uLWVtcHR5
IG9wdGlvbmFsIHRhZyBhcmd1bWVudA0KKE5GUzRFUlJfQkFEQ0hBUiwgTkZTNEVSUl9JTlZBTCwg
TkZTNEVSUl9SRVBfVE9PX0JJRywNCk5GUzRFUlJfUkVRX1RPT19CSUcpLg0KDQotLSANClRyb25k
IE15a2xlYnVzdA0KTGludXggTkZTIGNsaWVudCBtYWludGFpbmVyDQoNCk5ldEFwcA0KVHJvbmQu
TXlrbGVidXN0QG5ldGFwcC5jb20NCnd3dy5uZXRhcHAuY29tDQo=
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 19:04 ` Myklebust, Trond
@ 2012-11-19 21:15 ` J. Bruce Fields
0 siblings, 0 replies; 14+ messages in thread
From: J. Bruce Fields @ 2012-11-19 21:15 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Chuck Lever, Steve Dickson, Linux NFS Mailing List
On Mon, Nov 19, 2012 at 07:04:10PM +0000, Myklebust, Trond wrote:
> On Mon, 2012-11-19 at 13:39 -0500, Chuck Lever wrote:
> > On Nov 19, 2012, at 1:29 PM, "Myklebust, Trond" <Trond.Myklebust@netapp.com> wrote:
> > > As for minor version negotiation, RFC3530 already tells you how to do
> > > this: the client has to start with the highest version that it supports,
> > > and then walk that number down until the server stops replying with
> > > NFS4ERR_MINOR_VERS_MISMATCH.
> > >
> > > Note that if you want to do this in userland before calling the mount
> > > syscall, then the spec does allow you to "ping" the NFSv4 server with an
> > > empty COMPOUND.
> >
> > I see: not an NFSv4 NULL, but an NFSv4 COMPOUND that has no operations. That carries a compound header, which would have the minor version number in it.
>
> Right. Section 16.2.4 of RFC5661 would appear to allow the server to
> return the following errors in the case of an empty COMPOUND: NFS4_OK,
> NFS4ERR_DELAY, NFS4ERR_MINOR_VERS_MISMATCH and NFS4ERR_SERVERFAULT.
>
> The other errors shouldn't apply at all to a zero-op compound
> (NFS4ERR_BADXDR, NFS4ERR_TOO_MANY_OPS, NFS4ERR_REP_TOO_BIG_TO_CACHE), or
> should only apply if you have a non-empty optional tag argument
> (NFS4ERR_BADCHAR, NFS4ERR_INVAL, NFS4ERR_REP_TOO_BIG,
> NFS4ERR_REQ_TOO_BIG).
And, I just wanted to check because I hadn't thought about this before:
the Linux server does appear to handle 0-length compounds correctly.
(And there's a 4.0 pynfs test, COMP1, which checks that a server will
accept a zero-length compound, so anyone that's run pynfs should have
noticed if there server doesn't.)
--b.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 18:29 ` Myklebust, Trond
2012-11-19 18:39 ` Chuck Lever
@ 2012-11-19 21:40 ` Steve Dickson
1 sibling, 0 replies; 14+ messages in thread
From: Steve Dickson @ 2012-11-19 21:40 UTC (permalink / raw)
To: Myklebust, Trond; +Cc: Chuck Lever, Linux NFS Mailing List
On 19/11/12 13:29, Myklebust, Trond wrote:
> Note that the mount command should in any case not be relying on rpcbind
> to decide whether or not the server supports NFSv4.
Of course....
>
> As for minor version negotiation, RFC3530 already tells you how to do
> this: the client has to start with the highest version that it supports,
> and then walk that number down until the server stops replying with
> NFS4ERR_MINOR_VERS_MISMATCH.
Perfect... I think we should do *all* v4 negotiation from the mount
command... It's so much acceptable to replace mount.nfs binaries
than kernels...
>
> Note that if you want to do this in userland before calling the mount
> syscall, then the spec does allow you to "ping" the NFSv4 server with an
> empty COMPOUND.
The type of functionality will allow us to better deal with legacy servers, IMHO..
steved.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [RFC PATCH V2] mount: Added the -o v4.1 mount option
2012-11-19 18:21 ` Chuck Lever
@ 2012-11-19 21:51 ` Steve Dickson
0 siblings, 0 replies; 14+ messages in thread
From: Steve Dickson @ 2012-11-19 21:51 UTC (permalink / raw)
To: Chuck Lever; +Cc: Linux NFS Mailing List
On 19/11/12 13:21, Chuck Lever wrote:
>
> As Trond points out, mount.nfs really should not use option "minorversion=" here, except on kernels that do not support "vers=4.x". That will add complexity, certainly.
I agree... The patch I put out today was just an RFC... I just wanted to get the conversation started...
>
> In addition, I think we can expect the need for support for "v4.2" and "v4.0" (perhaps) in the near future, and then subsequently "v4.3" and so on. Since that is close at hand, we should consider the need to add those as we design this.
Right, I thinking bring this type of negotiation back up to userland is the right thing to do...
>
> Perhaps instead of editing the mount option string directly in nfs_nfs_version(), you might add a "*minorversion" argument to nfs_nfs_version() function and let its callers finish the work, just as is done with "*version" today. That might also make it easier to add the logic that changes behavior based on kernel version.
Let me digest this... I've noticed that in recent kernels that minorversion always seems to be set...
steved.
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2012-11-19 21:51 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-19 15:43 [RFC PATCH V2] mount: Added the -o v4.1 mount option Steve Dickson
2012-11-19 15:54 ` Myklebust, Trond
2012-11-19 15:58 ` Steve Dickson
2012-11-19 16:02 ` Myklebust, Trond
2012-11-19 16:14 ` Steve Dickson
2012-11-19 16:24 ` Myklebust, Trond
2012-11-19 18:11 ` Chuck Lever
2012-11-19 18:29 ` Myklebust, Trond
2012-11-19 18:39 ` Chuck Lever
2012-11-19 19:04 ` Myklebust, Trond
2012-11-19 21:15 ` J. Bruce Fields
2012-11-19 21:40 ` Steve Dickson
2012-11-19 18:21 ` Chuck Lever
2012-11-19 21:51 ` Steve Dickson
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).