All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Myklebust, Trond" <Trond.Myklebust@netapp.com>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: "linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH 18/20] NFS: Detect NFSv4 server trunking when mounting
Date: Mon, 23 Apr 2012 21:27:45 +0000	[thread overview]
Message-ID: <1335216465.11427.34.camel@lade.trondhjem.org> (raw)
In-Reply-To: <20120423205552.11446.58714.stgit@degas.1015granger.net>

T24gTW9uLCAyMDEyLTA0LTIzIGF0IDE2OjU1IC0wNDAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g
Q3VycmVudGx5IHRoZSBMaW51eCBORlMgY2xpZW50IHdhaXRzIHRvIHBlcmZvcm0gYSBTRVRDTElF
TlRJRCB1bnRpbA0KPiBqdXN0IGJlZm9yZSBhbiBhcHBsaWNhdGlvbiB3YW50cyB0byBvcGVuIGEg
ZmlsZS4gIFF1aXRlIGEgYml0IG9mDQo+IGFjdGl2aXR5IGNhbiBvY2N1ciBiZWZvcmUgYW55IHN0
YXRlIGlzIG5lZWRlZC4NCj4gDQo+IElmIHRoZSBjbGllbnQgY2FyZXMgYWJvdXQgc2VydmVyIHRy
dW5raW5nLCBob3dldmVyLCBubyBORlN2NA0KPiBvcGVyYXRpb25zIGNhbiBwcm9jZWVkIHVudGls
IHRoZSBjbGllbnQgZGV0ZXJtaW5lcyB3aG8gaXQgaXMgdGFsa2luZw0KPiB0by4gIFRodXMgc2Vy
dmVyIElQIHRydW5raW5nIGRldGVjdGlvbiBtdXN0IGJlIGRvbmUgd2hlbiB0aGUgY2xpZW50DQo+
IGZpcnN0IGVuY291bnRlcnMgYW4gdW5mYW1pbGlhciBzZXJ2ZXIgSVAgYWRkcmVzcy4NCj4gDQo+
IFRoZSBuZnNfZ2V0X2NsaWVudCgpIGZ1bmN0aW9uIHdhbGtzIHRoZSBuZnNfY2xpZW50X2xpc3Qg
YW5kIG1hdGNoZXMgb24NCj4gc2VydmVyIElQIGFkZHJlc3MuICBUaGUgb3V0Y29tZSBvZiB0aGF0
IHdhbGsgdGVsbHMgdXMgaW1tZWRpYXRlbHkgaWYNCj4gd2UgaGF2ZSBhbiB1bmZhbWlsaWFyIHNl
cnZlciBJUCBhZGRyZXNzLiAgSXQgaW52b2tlcyBhbiBpbml0X2NsaWVudCgpDQo+IG1ldGhvZCBp
biB0aGlzIGNhc2UuDQo+IA0KPiBUaHVzLCBuZnM0X2luaXRfY2xpZW50KCkgY2FuIGVzdGFibGlz
aCBhIGZyZXNoIGNsaWVudCBJRCwgYW5kIHBlcmZvcm0NCj4gdHJ1bmtpbmcgZGV0ZWN0aW9uIHdp
dGggaXQuICBUaGUgZXhhY3QgcHJvY2VzcyBmb3IgZGV0ZWN0aW5nIHRydW5raW5nDQo+IGlzIGRp
ZmZlcmVudCBmb3IgTkZTdjQuMCBhbmQgTkZTdjQuMSwgc28gYSBtaW5vcnZlcnNpb24tc3BlY2lm
aWMNCj4gaW5pdF9jbGllbnQgY2FsbG91dCBpcyBpbnRyb2R1Y2VkLg0KPiANCj4gU2lnbmVkLW9m
Zi1ieTogQ2h1Y2sgTGV2ZXIgPGNodWNrLmxldmVyQG9yYWNsZS5jb20+DQo+IC0tLQ0KPiANCj4g
IGZzL25mcy9jbGllbnQuYyAgICB8ICAyMjMgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKw0KPiAgZnMvbmZzL2ludGVybmFsLmggIHwgICAgNiArDQo+
ICBmcy9uZnMvbmZzNF9mcy5oICAgfCAgICA3ICsrDQo+ICBmcy9uZnMvbmZzNHByb2MuYyAgfCAg
ICAyIA0KPiAgZnMvbmZzL25mczRzdGF0ZS5jIHwgIDEzMSArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKystDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDM2NyBpbnNlcnRpb25zKCspLCAyIGRlbGV0
aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2ZzL25mcy9jbGllbnQuYyBiL2ZzL25mcy9jbGll
bnQuYw0KPiBpbmRleCA5MjBhYmJjLi43MzMwNjczIDEwMDY0NA0KPiAtLS0gYS9mcy9uZnMvY2xp
ZW50LmMNCj4gKysrIGIvZnMvbmZzL2NsaWVudC5jDQo+IEBAIC01NjYsNyArNTY2LDggQEAgbmZz
X2dldF9jbGllbnQoY29uc3Qgc3RydWN0IG5mc19jbGllbnRfaW5pdGRhdGEgKmNsX2luaXQsDQo+
ICAJCQlyZXR1cm4gbmZzX2ZvdW5kX2NsaWVudChjbF9pbml0LCBjbHApOw0KPiAgCQl9DQo+ICAJ
CWlmIChuZXcpIHsNCj4gLQkJCWxpc3RfYWRkKCZuZXctPmNsX3NoYXJlX2xpbmssICZubi0+bmZz
X2NsaWVudF9saXN0KTsNCj4gKwkJCWxpc3RfYWRkX3RhaWwoJm5ldy0+Y2xfc2hhcmVfbGluaywN
Cj4gKwkJCQkJJm5uLT5uZnNfY2xpZW50X2xpc3QpOw0KPiAgCQkJc3Bpbl91bmxvY2soJm5uLT5u
ZnNfY2xpZW50X2xvY2spOw0KPiAgCQkJbmV3LT5jbF9mbGFncyA9IGNsX2luaXQtPmluaXRfZmxh
Z3M7DQo+ICAJCQlyZXR1cm4gY2xfaW5pdC0+cnBjX29wcy0+aW5pdF9jbGllbnQobmV3LA0KPiBA
QCAtNTg0LDYgKzU4NSwyMTAgQEAgbmZzX2dldF9jbGllbnQoY29uc3Qgc3RydWN0IG5mc19jbGll
bnRfaW5pdGRhdGEgKmNsX2luaXQsDQo+ICAJcmV0dXJuIG5ldzsNCj4gIH0NCj4gIA0KPiArI2lm
ZGVmIENPTkZJR19ORlNfVjQNCj4gKy8qDQo+ICsgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGNsaWVu
dCBJRHMgbWF0Y2gNCj4gKyAqLw0KPiArc3RhdGljIGJvb2wNCj4gK25mczRfbWF0Y2hfY2xpZW50
aWRzKHN0cnVjdCBuZnNfY2xpZW50ICphLCBzdHJ1Y3QgbmZzX2NsaWVudCAqYikNCj4gK3sNCj4g
KwlpZiAoYS0+Y2xfY2xpZW50aWQgIT0gYi0+Y2xfY2xpZW50aWQpIHsNCj4gKwkJZHByaW50aygi
TkZTOiAtLT4gJXMgY2xpZW50IElEICVsbHggZG9lcyBub3QgbWF0Y2ggJWxseFxuIiwNCj4gKwkJ
CV9fZnVuY19fLCBhLT5jbF9jbGllbnRpZCwgYi0+Y2xfY2xpZW50aWQpOw0KPiArCQlyZXR1cm4g
ZmFsc2U7DQo+ICsJfQ0KPiArCWRwcmludGsoIk5GUzogLS0+ICVzIGNsaWVudCBJRCAlbGx4IG1h
dGNoZXMgJWxseFxuIiwNCj4gKwkJX19mdW5jX18sIGEtPmNsX2NsaWVudGlkLCBiLT5jbF9jbGll
bnRpZCk7DQo+ICsJcmV0dXJuIHRydWU7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogbmZzNDBf
d2Fsa19jbGllbnRfbGlzdCAtIEZpbmQgc2VydmVyIHRoYXQgcmVjb2duaXplcyBhIGNsaWVudCBJ
RA0KPiArICoNCj4gKyAqIEBuZXc6IG5mc19jbGllbnQgd2l0aCBjbGllbnQgSUQgdG8gdGVzdA0K
PiArICogQHJlc3VsdDogT1VUOiBmb3VuZCBuZnNfY2xpZW50LCBvciBuZXcNCj4gKyAqIEBjcmVk
OiBjcmVkZW50aWFsIHRvIHVzZSBmb3IgdHJ1bmtpbmcgdGVzdA0KPiArICoNCj4gKyAqIFJldHVy
bnMgTkZTNF9PSywgYSBuZWdhdGl2ZSBlcnJubywgb3IgYSBuZWdhdGl2ZSBORlM0RVJSIHN0YXR1
cy4NCj4gKyAqIElmIE5GUzRfT0sgaXMgcmV0dXJuZWQsIGFuIG5mc19jbGllbnQgcG9pbnRlciBp
cyBwbGFudGVkIGluICJyZXN1bHQuIg0KPiArICoNCj4gKyAqIE5COiBuZnM0MF93YWxrX2NsaWVu
dF9saXN0KCkgcmVsaWVzIG9uIHRoZSBuZXcgbmZzX2NsaWVudCBiZWluZw0KPiArICogICAgIHRo
ZSBsYXN0IG5mc19jbGllbnQgb24gdGhlIGxpc3QuDQo+ICsgKi8NCj4gK2ludCBuZnM0MF93YWxr
X2NsaWVudF9saXN0KHN0cnVjdCBuZnNfY2xpZW50ICpuZXcsDQo+ICsJCQkgICBzdHJ1Y3QgbmZz
X2NsaWVudCAqKnJlc3VsdCwNCj4gKwkJCSAgIHN0cnVjdCBycGNfY3JlZCAqY3JlZCkNCj4gK3sN
Cj4gKwlzdHJ1Y3QgbmZzX25ldCAqbm4gPSBuZXRfZ2VuZXJpYyhuZXctPmNsX25ldCwgbmZzX25l
dF9pZCk7DQo+ICsJc3RydWN0IG5mc19jbGllbnQgKnBvcywgKnByZXYgPSBOVUxMOw0KPiArCXN0
cnVjdCBuZnM0X3NldGNsaWVudGlkX3JlcyBjbGlkID0gew0KPiArCQkuY2xpZW50aWQJPSBuZXct
PmNsX2NsaWVudGlkLA0KPiArCQkuY29uZmlybQk9IG5ldy0+Y2xfY29uZmlybSwNCj4gKwl9Ow0K
PiArCWludCBzdGF0dXM7DQo+ICsNCj4gKwlkcHJpbnRrKCJORlM6IC0tPiAlcyBuZnNfY2xpZW50
ID0gJXBcbiIsIF9fZnVuY19fLCBuZXcpOw0KPiArDQo+ICsJc3Bpbl9sb2NrKCZubi0+bmZzX2Ns
aWVudF9sb2NrKTsNCj4gKw0KPiArCWxpc3RfZm9yX2VhY2hfZW50cnkocG9zLCAmbm4tPm5mc19j
bGllbnRfbGlzdCwgY2xfc2hhcmVfbGluaykgew0KPiArCQlpZiAocG9zLT5jbF9jb25zX3N0YXRl
IDwgMCkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmIChwb3MtPnJwY19vcHMgIT0gbmV3
LT5ycGNfb3BzKQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJaWYgKHBvcy0+Y2xfcHJvdG8g
IT0gbmV3LT5jbF9wcm90bykNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmIChwb3MtPmNs
X21pbm9ydmVyc2lvbiAhPSBuZXctPmNsX21pbm9ydmVyc2lvbikNCj4gKwkJCWNvbnRpbnVlOw0K
PiArDQo+ICsJCWRwcmludGsoIk5GUzogLS0+ICVzIGNvbXBhcmluZyAlbGx4IGFuZCAlbGx4XG4i
LCBfX2Z1bmNfXywNCj4gKwkJCW5ldy0+Y2xfY2xpZW50aWQsIHBvcy0+Y2xfY2xpZW50aWQpOw0K
PiArCQlpZiAocG9zLT5jbF9jbGllbnRpZCAhPSBuZXctPmNsX2NsaWVudGlkKQ0KPiArCQkJY29u
dGludWU7DQo+ICsNCj4gKwkJYXRvbWljX2luYygmcG9zLT5jbF9jb3VudCk7DQo+ICsJCWRwcmlu
dGsoIiVzIG5mc19jbGllbnQgPSAlcCAoeyVkfSlcbiIsDQo+ICsJCQlfX2Z1bmNfXywgcG9zLCBh
dG9taWNfcmVhZCgmcG9zLT5jbF9jb3VudCkpOw0KPiArCQlzcGluX3VubG9jaygmbm4tPm5mc19j
bGllbnRfbG9jayk7DQo+ICsNCj4gKwkJZHByaW50aygiTkZTOiAtLT4gJXMgY29uZmlybWluZyAl
bGx4XG4iLA0KPiArCQkJX19mdW5jX18sIG5ldy0+Y2xfY2xpZW50aWQpOw0KPiArDQo+ICsJCWlm
IChwcmV2KQ0KPiArCQkJbmZzX3B1dF9jbGllbnQocHJldik7DQo+ICsNCj4gKwkJc3RhdHVzID0g
bmZzNF9wcm9jX3NldGNsaWVudGlkX2NvbmZpcm0ocG9zLCAmY2xpZCwgY3JlZCk7DQoNCkhvdyBh
cmUgeW91IHByb3RlY3RpbmcgYWdhaW5zdCBORlM0Q0xOVF9QVVJHRV9TVEFURT8NCg0KPiArCQlp
ZiAoc3RhdHVzID09IE5GUzRfT0spIHsNCg0Kc3RhdHVzID09IDANCg0KPiArCQkJLyogVGhlIG5l
dyBuZnNfY2xpZW50IGRvZXNuJ3QgbmVlZCB0aGUgZXh0cmENCj4gKwkJCSAqIGNsX2NvdW50IGJ1
bXAuICovDQo+ICsJCQluZnNfcHV0X2NsaWVudChwb3MpOw0KPiArCQkJKnJlc3VsdCA9IHBvczsN
Cj4gKwkJCWRwcmludGsoIk5GUzogPC0tICVzIHVzaW5nIG5mc19jbGllbnQgPSAlcCAoeyVkfSlc
biIsDQo+ICsJCQkJX19mdW5jX18sIHBvcywgYXRvbWljX3JlYWQoJnBvcy0+Y2xfY291bnQpKTsN
Cj4gKwkJCXJldHVybiBORlM0X09LOw0KDQpyZXR1cm4gMA0KDQo+ICsJCX0NCj4gKwkJaWYgKHN0
YXR1cyAhPSBORlM0RVJSX1NUQUxFX0NMSUVOVElEKSB7DQoNCkFsbCBlcnJvciB2YWx1ZXMgYXJl
IF9uZWdhdGl2ZV8gaW50ZWdlcnMuDQoNCj4gKwkJCW5mc19wdXRfY2xpZW50KHBvcyk7DQo+ICsJ
CQlkcHJpbnRrKCJORlM6IDwtLSAlcyBzdGF0dXMgPSAlZCwgbm8gcmVzdWx0XG4iLA0KPiArCQkJ
CV9fZnVuY19fLCBzdGF0dXMpOw0KPiArCQkJcmV0dXJuIHN0YXR1czsNCj4gKwkJfQ0KPiArDQo+
ICsJCXNwaW5fbG9jaygmbm4tPm5mc19jbGllbnRfbG9jayk7DQo+ICsJCXByZXYgPSBwb3M7DQo+
ICsJfQ0KPiArDQo+ICsJLyoNCj4gKwkgKiBObyBtYXRjaGluZyBuZnNfY2xpZW50IGZvdW5kLiAg
VGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZSwNCj4gKwkgKiBiZWNhdXNlIHRoZSBuZXcgbmZzX2Ns
aWVudCBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvDQo+ICsJICogbmZzX2NsaWVudF9saXN0IGJ5
IG5mc19nZXRfY2xpZW50KCkuDQo+ICsJICoNCj4gKwkgKiBEb24ndCBCVUcoKSwgc2luY2UgdGhl
IGNhbGxlciBpcyBob2xkaW5nIGEgbXV0ZXguDQo+ICsJICovDQo+ICsJc3Bpbl91bmxvY2soJm5u
LT5uZnNfY2xpZW50X2xvY2spOw0KPiArCXByaW50ayhLRVJOX0VSUiAiTkZTOiAlcyBFcnJvcjog
bm8gbWF0Y2hpbmcgbmZzX2NsaWVudCBmb3VuZFxuIiwNCj4gKwkJX19mdW5jX18pOw0KPiArCXJl
dHVybiBORlM0RVJSX1NUQUxFX0NMSUVOVElEOw0KDQotTkZTNEVSUl9TVEFMRV9DTElFTlRJRC4u
Lg0KDQo+ICt9DQo+ICsNCj4gKyNpZmRlZiBDT05GSUdfTkZTX1Y0XzENCj4gKy8qDQo+ICsgKiBS
ZXR1cm5zIHRydWUgaWYgdGhlIHNlcnZlciBvd25lcnMgbWF0Y2gNCj4gKyAqLw0KPiArc3RhdGlj
IGJvb2wNCj4gK25mczRfbWF0Y2hfc2VydmVyb3duZXJzKHN0cnVjdCBuZnNfY2xpZW50ICphLCBz
dHJ1Y3QgbmZzX2NsaWVudCAqYikNCj4gK3sNCj4gKwlzdHJ1Y3QgbmZzNDFfc2VydmVyX293bmVy
ICpvMSA9IGEtPmNsX3NlcnZlcm93bmVyOw0KPiArCXN0cnVjdCBuZnM0MV9zZXJ2ZXJfb3duZXIg
Km8yID0gYi0+Y2xfc2VydmVyb3duZXI7DQo+ICsNCj4gKwlpZiAobzEtPm1pbm9yX2lkICE9IG8y
LT5taW5vcl9pZCkgew0KPiArCQlkcHJpbnRrKCJORlM6IC0tPiAlcyBzZXJ2ZXIgb3duZXIgbWlu
b3IgSURzIGRvIG5vdCBtYXRjaFxuIiwNCj4gKwkJCV9fZnVuY19fKTsNCj4gKwkJcmV0dXJuIGZh
bHNlOw0KPiArCX0NCj4gKw0KPiArCWlmIChvMS0+bWFqb3JfaWRfc3ogIT0gbzItPm1ham9yX2lk
X3N6KQ0KPiArCQlnb3RvIG91dF9tYWpvcl9taXNtYXRjaDsNCj4gKwlpZiAobWVtY21wKG8xLT5t
YWpvcl9pZCwgbzItPm1ham9yX2lkLCBvMS0+bWFqb3JfaWRfc3opICE9IDApDQo+ICsJCWdvdG8g
b3V0X21ham9yX21pc21hdGNoOw0KPiArDQo+ICsJZHByaW50aygiTkZTOiAtLT4gJXMgc2VydmVy
IG93bmVycyBtYXRjaFxuIiwgX19mdW5jX18pOw0KPiArCXJldHVybiB0cnVlOw0KPiArDQo+ICtv
dXRfbWFqb3JfbWlzbWF0Y2g6DQo+ICsJZHByaW50aygiTkZTOiAtLT4gJXMgc2VydmVyIG93bmVy
IG1ham9yIElEcyBkbyBub3QgbWF0Y2hcbiIsDQo+ICsJCV9fZnVuY19fKTsNCj4gKwlyZXR1cm4g
ZmFsc2U7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogbmZzNDFfd2Fsa19jbGllbnRfbGlzdCAt
IEZpbmQgbmZzX2NsaWVudCB0aGF0IG1hdGNoZXMgYSBjbGllbnQvc2VydmVyIG93bmVyDQo+ICsg
Kg0KPiArICogQG5ldzogbmZzX2NsaWVudCB3aXRoIGNsaWVudCBJRCB0byB0ZXN0DQo+ICsgKiBA
cmVzdWx0OiBPVVQ6IGZvdW5kIG5mc19jbGllbnQsIG9yIG5ldw0KPiArICogQGNyZWQ6IGNyZWRl
bnRpYWwgdG8gdXNlIGZvciB0cnVua2luZyB0ZXN0DQo+ICsgKg0KPiArICogUmV0dXJucyBORlM0
X09LLCBhIG5lZ2F0aXZlIGVycm5vLCBvciBhIG5lZ2F0aXZlIE5GUzRFUlIgc3RhdHVzLg0KPiAr
ICogSWYgTkZTNF9PSyBpcyByZXR1cm5lZCwgYW4gbmZzX2NsaWVudCBwb2ludGVyIGlzIHBsYW50
ZWQgaW4gInJlc3VsdC4iDQo+ICsgKg0KPiArICogTkI6IG5mczQxX3dhbGtfY2xpZW50X2xpc3Qo
KSByZWxpZXMgb24gdGhlIG5ldyBuZnNfY2xpZW50IGJlaW5nDQo+ICsgKiAgICAgdGhlIGxhc3Qg
bmZzX2NsaWVudCBvbiB0aGUgbGlzdC4NCj4gKyAqLw0KPiAraW50IG5mczQxX3dhbGtfY2xpZW50
X2xpc3Qoc3RydWN0IG5mc19jbGllbnQgKm5ldywNCj4gKwkJCSAgIHN0cnVjdCBuZnNfY2xpZW50
ICoqcmVzdWx0LA0KPiArCQkJICAgc3RydWN0IHJwY19jcmVkICpjcmVkKQ0KPiArew0KPiArCXN0
cnVjdCBuZnNfbmV0ICpubiA9IG5ldF9nZW5lcmljKG5ldy0+Y2xfbmV0LCBuZnNfbmV0X2lkKTsN
Cj4gKwlzdHJ1Y3QgbmZzX2NsaWVudCAqcG9zOw0KPiArDQo+ICsJZHByaW50aygiTkZTOiAtLT4g
JXMgbmZzX2NsaWVudCA9ICVwXG4iLCBfX2Z1bmNfXywgbmV3KTsNCj4gKw0KPiArCXNwaW5fbG9j
aygmbm4tPm5mc19jbGllbnRfbG9jayk7DQo+ICsNCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KHBv
cywgJm5uLT5uZnNfY2xpZW50X2xpc3QsIGNsX3NoYXJlX2xpbmspIHsNCj4gKwkJaWYgKHBvcy0+
Y2xfY29uc19zdGF0ZSA8IDApDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAocG9zLT5y
cGNfb3BzICE9IG5ldy0+cnBjX29wcykNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmIChw
b3MtPmNsX3Byb3RvICE9IG5ldy0+Y2xfcHJvdG8pDQo+ICsJCQljb250aW51ZTsNCj4gKw0KPiAr
CQlpZiAocG9zLT5jbF9taW5vcnZlcnNpb24gIT0gbmV3LT5jbF9taW5vcnZlcnNpb24pDQo+ICsJ
CQljb250aW51ZTsNCj4gKw0KPiArCQlpZiAoIW5mczRfbWF0Y2hfY2xpZW50aWRzKHBvcywgbmV3
KSkNCj4gKwkJCWNvbnRpbnVlOw0KPiArDQo+ICsJCWlmICghbmZzNF9tYXRjaF9zZXJ2ZXJvd25l
cnMocG9zLCBuZXcpKQ0KPiArCQkJY29udGludWU7DQo+ICsNCj4gKwkJYXRvbWljX2luYygmcG9z
LT5jbF9jb3VudCk7DQo+ICsJCSpyZXN1bHQgPSBwb3M7DQo+ICsJCWRwcmludGsoIk5GUzogPC0t
ICVzIHVzaW5nIG5mc19jbGllbnQgPSAlcCAoeyVkfSlcbiIsDQo+ICsJCQlfX2Z1bmNfXywgcG9z
LCBhdG9taWNfcmVhZCgmcG9zLT5jbF9jb3VudCkpOw0KPiArCQlyZXR1cm4gTkZTNF9PSzsNCg0K
MA0KDQo+ICsJfQ0KPiArDQo+ICsJLyoNCj4gKwkgKiBObyBtYXRjaGluZyBuZnNfY2xpZW50IGZv
dW5kLiAgVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZSwNCj4gKwkgKiBiZWNhdXNlIHRoZSBuZXcg
bmZzX2NsaWVudCBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvDQo+ICsJICogbmZzX2NsaWVudF9s
aXN0IGJ5IG5mc19nZXRfY2xpZW50KCkuDQo+ICsJICoNCj4gKwkgKiBEb24ndCBCVUcoKSwgc2lu
Y2UgdGhlIGNhbGxlciBpcyBob2xkaW5nIGEgbXV0ZXguDQo+ICsJICovDQo+ICsJc3Bpbl91bmxv
Y2soJm5uLT5uZnNfY2xpZW50X2xvY2spOw0KPiArCXByaW50ayhLRVJOX0VSUiAiTkZTOiAlcyBF
cnJvcjogbm8gbWF0Y2hpbmcgbmZzX2NsaWVudCBmb3VuZFxuIiwNCj4gKwkJX19mdW5jX18pOw0K
PiArCXJldHVybiBORlM0RVJSX1NUQUxFX0NMSUVOVElEOw0KDQotTkZTNEVSUl9TVEFMRV9DTElF
TlRJRA0KDQo+ICt9DQo+ICsjZW5kaWYJLyogQ09ORklHX05GU19WNF8xICovDQo+ICsjZW5kaWYJ
LyogQ09ORklHX05GU19WNCAqLw0KPiArDQo+ICAvKg0KPiAgICogTWFyayBhIHNlcnZlciBhcyBy
ZWFkeSBvciBmYWlsZWQNCj4gICAqLw0KPiBAQCAtMTM1MCw2ICsxNTU1LDcgQEAgc3RydWN0IG5m
c19jbGllbnQgKm5mczRfaW5pdF9jbGllbnQoc3RydWN0IG5mc19jbGllbnQgKmNscCwNCj4gIAkJ
CQkgICAgcnBjX2F1dGhmbGF2b3JfdCBhdXRoZmxhdm91cikNCj4gIHsNCj4gIAljaGFyIGJ1ZltJ
TkVUNl9BRERSU1RSTEVOICsgMV07DQo+ICsJc3RydWN0IG5mc19jbGllbnQgKm9sZDsNCj4gIAlp
bnQgZXJyb3I7DQo+ICANCj4gIAlpZiAoY2xwLT5jbF9jb25zX3N0YXRlID09IE5GU19DU19SRUFE
WSkgew0KPiBAQCAtMTM5NSw2ICsxNjAxLDIxIEBAIHN0cnVjdCBuZnNfY2xpZW50ICpuZnM0X2lu
aXRfY2xpZW50KHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsDQo+ICANCj4gIAlpZiAoIW5mczRfaGFz
X3Nlc3Npb24oY2xwKSkNCj4gIAkJbmZzX21hcmtfY2xpZW50X3JlYWR5KGNscCwgTkZTX0NTX1JF
QURZKTsNCj4gKw0KPiArCWVycm9yID0gbmZzNF9kZXRlY3RfdHJ1bmtpbmcoY2xwLCAmb2xkKTsN
Cj4gKwlpZiAoZXJyb3IgPCAwKQ0KPiArCQlnb3RvIGVycm9yOw0KPiArCWlmIChjbHAgIT0gb2xk
KSB7DQo+ICsJCW5mc19tYXJrX2NsaWVudF9yZWFkeShjbHAsIE5GU19DU19SRUFEWSk7DQo+ICsJ
CW5mc19wdXRfY2xpZW50KGNscCk7DQo+ICsJCWRwcmludGsoIjwtLSAlcygpIHJldHVybmluZyAl
cCBpbnN0ZWFkIG9mICVwXG4iLA0KPiArCQkJX19mdW5jX18sIG9sZCwgY2xwKTsNCj4gKwkJY2xw
ID0gb2xkOw0KPiArCQlhdG9taWNfaW5jKCZjbHAtPmNsX2NvdW50KTsNCj4gKwkJZHByaW50aygi
TkZTOiA8LS0gJXMgdXNpbmcgbmZzX2NsaWVudCA9ICVwICh7JWR9KVxuIiwNCj4gKwkJCV9fZnVu
Y19fLCBjbHAsIGF0b21pY19yZWFkKCZjbHAtPmNsX2NvdW50KSk7DQo+ICsJfQ0KPiArDQo+ICAJ
cmV0dXJuIGNscDsNCj4gIA0KPiAgZXJyb3I6DQo+IGRpZmYgLS1naXQgYS9mcy9uZnMvaW50ZXJu
YWwuaCBiL2ZzL25mcy9pbnRlcm5hbC5oDQo+IGluZGV4IDMxNWRjODYuLjg1ODg4ZjYgMTAwNjQ0
DQo+IC0tLSBhL2ZzL25mcy9pbnRlcm5hbC5oDQo+ICsrKyBiL2ZzL25mcy9pbnRlcm5hbC5oDQo+
IEBAIC0xNjIsNiArMTYyLDEyIEBAIGV4dGVybiBzdHJ1Y3QgbmZzX2NsaWVudCAqbmZzNF9pbml0
X2NsaWVudChzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLA0KPiAgCQkJCWNvbnN0IHN0cnVjdCBycGNf
dGltZW91dCAqdGltZXBhcm1zLA0KPiAgCQkJCWNvbnN0IGNoYXIgKmlwX2FkZHIsDQo+ICAJCQkJ
cnBjX2F1dGhmbGF2b3JfdCBhdXRoZmxhdm91cik7DQo+ICtleHRlcm4gaW50IG5mczQwX3dhbGtf
Y2xpZW50X2xpc3Qoc3RydWN0IG5mc19jbGllbnQgKmNscCwNCj4gKwkJCQlzdHJ1Y3QgbmZzX2Ns
aWVudCAqKnJlc3VsdCwNCj4gKwkJCQlzdHJ1Y3QgcnBjX2NyZWQgKmNyZWQpOw0KPiArZXh0ZXJu
IGludCBuZnM0MV93YWxrX2NsaWVudF9saXN0KHN0cnVjdCBuZnNfY2xpZW50ICpjbHAsDQo+ICsJ
CQkJc3RydWN0IG5mc19jbGllbnQgKipyZXN1bHQsDQo+ICsJCQkJc3RydWN0IHJwY19jcmVkICpj
cmVkKTsNCj4gIGV4dGVybiBzdHJ1Y3QgbmZzX3NlcnZlciAqbmZzX2NyZWF0ZV9zZXJ2ZXIoDQo+
ICAJCQkJCWNvbnN0IHN0cnVjdCBuZnNfcGFyc2VkX21vdW50X2RhdGEgKiwNCj4gIAkJCQkJc3Ry
dWN0IG5mc19maCAqKTsNCj4gZGlmZiAtLWdpdCBhL2ZzL25mcy9uZnM0X2ZzLmggYi9mcy9uZnMv
bmZzNF9mcy5oDQo+IGluZGV4IDI5NTNmMmMuLmJhMTM5ODYgMTAwNjQ0DQo+IC0tLSBhL2ZzL25m
cy9uZnM0X2ZzLmgNCj4gKysrIGIvZnMvbmZzL25mczRfZnMuaA0KPiBAQCAtMTkwLDYgKzE5MCw4
IEBAIHN0cnVjdCBuZnM0X3N0YXRlX3JlY292ZXJ5X29wcyB7DQo+ICAJaW50ICgqZXN0YWJsaXNo
X2NsaWQpKHN0cnVjdCBuZnNfY2xpZW50ICosIHN0cnVjdCBycGNfY3JlZCAqKTsNCj4gIAlzdHJ1
Y3QgcnBjX2NyZWQgKiAoKmdldF9jbGlkX2NyZWQpKHN0cnVjdCBuZnNfY2xpZW50ICopOw0KPiAg
CWludCAoKnJlY2xhaW1fY29tcGxldGUpKHN0cnVjdCBuZnNfY2xpZW50ICopOw0KPiArCWludCAo
KmRldGVjdF90cnVua2luZykoc3RydWN0IG5mc19jbGllbnQgKiwgc3RydWN0IG5mc19jbGllbnQg
KiosDQo+ICsJCXN0cnVjdCBycGNfY3JlZCAqKTsNCj4gIH07DQo+ICANCj4gIHN0cnVjdCBuZnM0
X3N0YXRlX21haW50ZW5hbmNlX29wcyB7DQo+IEBAIC0yOTcsOSArMjk5LDE0IEBAIGV4dGVybiB2
b2lkIG5mczRfcmVuZXdfc3RhdGUoc3RydWN0IHdvcmtfc3RydWN0ICopOw0KPiAgLyogbmZzNHN0
YXRlLmMgKi8NCj4gIHN0cnVjdCBycGNfY3JlZCAqbmZzNF9nZXRfc2V0Y2xpZW50aWRfY3JlZChz
dHJ1Y3QgbmZzX2NsaWVudCAqY2xwKTsNCj4gIHN0cnVjdCBycGNfY3JlZCAqbmZzNF9nZXRfcmVu
ZXdfY3JlZF9sb2NrZWQoc3RydWN0IG5mc19jbGllbnQgKmNscCk7DQo+ICtpbnQgbmZzNF9kZXRl
Y3RfdHJ1bmtpbmcoc3RydWN0IG5mc19jbGllbnQgKmNscCwgc3RydWN0IG5mc19jbGllbnQgKiop
Ow0KPiAraW50IG5mczQwX2RldGVjdF90cnVua2luZyhzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLCBz
dHJ1Y3QgbmZzX2NsaWVudCAqKiwNCj4gKwkJCXN0cnVjdCBycGNfY3JlZCAqKTsNCj4gICNpZiBk
ZWZpbmVkKENPTkZJR19ORlNfVjRfMSkNCj4gIHN0cnVjdCBycGNfY3JlZCAqbmZzNF9nZXRfbWFj
aGluZV9jcmVkX2xvY2tlZChzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwKTsNCj4gIHN0cnVjdCBycGNf
Y3JlZCAqbmZzNF9nZXRfZXhjaGFuZ2VfaWRfY3JlZChzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwKTsN
Cj4gK2ludCBuZnM0MV9kZXRlY3RfdHJ1bmtpbmcoc3RydWN0IG5mc19jbGllbnQgKmNscCwgc3Ry
dWN0IG5mc19jbGllbnQgKiosDQo+ICsJCQlzdHJ1Y3QgcnBjX2NyZWQgKik7DQo+ICBleHRlcm4g
dm9pZCBuZnM0X3NjaGVkdWxlX3Nlc3Npb25fcmVjb3Zlcnkoc3RydWN0IG5mczRfc2Vzc2lvbiAq
KTsNCj4gICNlbHNlDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgbmZzNF9zY2hlZHVsZV9zZXNzaW9u
X3JlY292ZXJ5KHN0cnVjdCBuZnM0X3Nlc3Npb24gKnNlc3Npb24pDQo+IGRpZmYgLS1naXQgYS9m
cy9uZnMvbmZzNHByb2MuYyBiL2ZzL25mcy9uZnM0cHJvYy5jDQo+IGluZGV4IDNmZDk5NDQuLjAw
YjVkMDIgMTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9uZnM0cHJvYy5jDQo+ICsrKyBiL2ZzL25mcy9u
ZnM0cHJvYy5jDQo+IEBAIC02NDUzLDYgKzY0NTMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG5m
czRfc3RhdGVfcmVjb3Zlcnlfb3BzIG5mczQwX3JlYm9vdF9yZWNvdmVyeV9vcHMgPSB7DQo+ICAJ
LnJlY292ZXJfbG9jawk9IG5mczRfbG9ja19yZWNsYWltLA0KPiAgCS5lc3RhYmxpc2hfY2xpZCA9
IG5mczRfaW5pdF9jbGllbnRpZCwNCj4gIAkuZ2V0X2NsaWRfY3JlZAk9IG5mczRfZ2V0X3NldGNs
aWVudGlkX2NyZWQsDQo+ICsJLmRldGVjdF90cnVua2luZyA9IG5mczQwX2RldGVjdF90cnVua2lu
ZywNCj4gIH07DQo+ICANCj4gICNpZiBkZWZpbmVkKENPTkZJR19ORlNfVjRfMSkNCj4gQEAgLTY0
NjQsNiArNjQ2NSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbmZzNF9zdGF0ZV9yZWNvdmVyeV9v
cHMgbmZzNDFfcmVib290X3JlY292ZXJ5X29wcyA9IHsNCj4gIAkuZXN0YWJsaXNoX2NsaWQgPSBu
ZnM0MV9pbml0X2NsaWVudGlkLA0KPiAgCS5nZXRfY2xpZF9jcmVkCT0gbmZzNF9nZXRfZXhjaGFu
Z2VfaWRfY3JlZCwNCj4gIAkucmVjbGFpbV9jb21wbGV0ZSA9IG5mczQxX3Byb2NfcmVjbGFpbV9j
b21wbGV0ZSwNCj4gKwkuZGV0ZWN0X3RydW5raW5nID0gbmZzNDFfZGV0ZWN0X3RydW5raW5nLA0K
PiAgfTsNCj4gICNlbmRpZiAvKiBDT05GSUdfTkZTX1Y0XzEgKi8NCj4gIA0KPiBkaWZmIC0tZ2l0
IGEvZnMvbmZzL25mczRzdGF0ZS5jIGIvZnMvbmZzL25mczRzdGF0ZS5jDQo+IGluZGV4IDZhMWEz
MDUuLmRmNTk5NTEgMTAwNjQ0DQo+IC0tLSBhL2ZzL25mcy9uZnM0c3RhdGUuYw0KPiArKysgYi9m
cy9uZnMvbmZzNHN0YXRlLmMNCj4gQEAgLTU3LDEwICs1NywxMiBAQA0KPiAgI2luY2x1ZGUgImlu
dGVybmFsLmgiDQo+ICAjaW5jbHVkZSAicG5mcy5oIg0KPiAgDQo+ICsjZGVmaW5lIE5GU0RCR19G
QUNJTElUWQkJTkZTREJHX0NMSUVOVA0KDQpNb3N0IG9mIHRoZSBzdHVmZiBpbiBuZnM0c3RhdGUu
YyBpcyBkZWFsaW5nIHdpdGggTkZTdjQtc3BlY2lmaWMgc3RhdGUuDQpJdCBkb2VzIG5vdCBtYWtl
IHNlbnNlIHRvIGx1bXAgdGhhdCBpbiB3aXRoIHRoZSBuZnNfY2xpZW50IGRlYnVnZ2luZy4NCg0K
PiArDQo+ICAjZGVmaW5lIE9QRU5PV05FUl9QT09MX1NJWkUJOA0KPiAgDQo+ICBjb25zdCBuZnM0
X3N0YXRlaWQgemVyb19zdGF0ZWlkOw0KPiAtDQo+ICtzdGF0aWMgREVGSU5FX01VVEVYKG5mc19j
bGlkX2luaXRfbXV0ZXgpOw0KPiAgc3RhdGljIExJU1RfSEVBRChuZnM0X2NsaWVudGlkX2xpc3Qp
Ow0KPiAgDQo+ICBpbnQgbmZzNF9pbml0X2NsaWVudGlkKHN0cnVjdCBuZnNfY2xpZW50ICpjbHAs
IHN0cnVjdCBycGNfY3JlZCAqY3JlZCkNCj4gQEAgLTk0LDYgKzk2LDQ3IEBAIG91dDoNCj4gIAly
ZXR1cm4gc3RhdHVzOw0KPiAgfQ0KPiAgDQo+ICsvKioNCj4gKyAqIG5mczQwX2RldGVjdF90cnVu
a2luZyAtIERldGVjdCBzZXJ2ZXIgSVAgYWRkcmVzcyB0cnVua2luZyAobXYwKQ0KPiArICoNCj4g
KyAqIEBjbHA6IG5mc19jbGllbnQgdW5kZXIgdGVzdA0KPiArICogQHJlc3VsdDogT1VUOiBmb3Vu
ZCBuZnNfY2xpZW50LCBvciBjbHANCj4gKyAqIEBjcmVkOiBjcmVkZW50aWFsIHRvIHVzZSBmb3Ig
dHJ1bmtpbmcgdGVzdA0KPiArICoNCj4gKyAqIFJldHVybnMgTkZTNF9PSywgYSBuZWdhdGl2ZSBl
cnJubywgb3IgYSBuZWdhdGl2ZSBORlM0RVJSIHN0YXR1cy4NCj4gKyAqIElmIE5GUzRfT0sgaXMg
cmV0dXJuZWQsIGFuIG5mc19jbGllbnQgcG9pbnRlciBpcyBwbGFudGVkIGluDQo+ICsgKiAicmVz
dWx0Ii4NCj4gKyAqLw0KPiAraW50IG5mczQwX2RldGVjdF90cnVua2luZyhzdHJ1Y3QgbmZzX2Ns
aWVudCAqY2xwLCBzdHJ1Y3QgbmZzX2NsaWVudCAqKnJlc3VsdCwNCj4gKwkJCSAgc3RydWN0IHJw
Y19jcmVkICpjcmVkKQ0KPiArew0KPiArCXN0cnVjdCBuZnM0X3NldGNsaWVudGlkX3JlcyBjbGlk
ID0gew0KPiArCQkuY2xpZW50aWQgPSBjbHAtPmNsX2NsaWVudGlkLA0KPiArCQkuY29uZmlybSA9
IGNscC0+Y2xfY29uZmlybSwNCj4gKwl9Ow0KPiArCXVuc2lnbmVkIHNob3J0IHBvcnQ7DQo+ICsJ
aW50IHN0YXR1czsNCj4gKw0KPiArCXBvcnQgPSBuZnNfY2FsbGJhY2tfdGNwcG9ydDsNCj4gKwlp
ZiAoY2xwLT5jbF9hZGRyLnNzX2ZhbWlseSA9PSBBRl9JTkVUNikNCj4gKwkJcG9ydCA9IG5mc19j
YWxsYmFja190Y3Bwb3J0NjsNCj4gKw0KPiArCXN0YXR1cyA9IG5mczRfcHJvY19zZXRjbGllbnRp
ZChjbHAsIE5GUzRfQ0FMTEJBQ0ssIHBvcnQsIGNyZWQsICZjbGlkKTsNCj4gKwlpZiAoc3RhdHVz
ICE9IE5GUzRfT0spDQo+ICsJCWdvdG8gb3V0Ow0KPiArCWNscC0+Y2xfY2xpZW50aWQgPSBjbGlk
LmNsaWVudGlkOw0KPiArCWNscC0+Y2xfY29uZmlybSA9IGNsaWQuY29uZmlybTsNCj4gKw0KPiAr
CXN0YXR1cyA9IG5mczQwX3dhbGtfY2xpZW50X2xpc3QoY2xwLCByZXN1bHQsIGNyZWQpOw0KPiAr
CWlmIChzdGF0dXMgIT0gTkZTNF9PSykgew0KPiArCQlzZXRfYml0KE5GUzRDTE5UX0xFQVNFX0NP
TkZJUk0sICZjbHAtPmNsX3N0YXRlKTsNCj4gKwkJbmZzNF9zY2hlZHVsZV9zdGF0ZV9yZW5ld2Fs
KCpyZXN1bHQpOw0KPiArCX0NCj4gKw0KPiArb3V0Og0KPiArCXJldHVybiBzdGF0dXM7DQo+ICt9
DQo+ICsNCj4gIHN0cnVjdCBycGNfY3JlZCAqbmZzNF9nZXRfbWFjaGluZV9jcmVkX2xvY2tlZChz
dHJ1Y3QgbmZzX2NsaWVudCAqY2xwKQ0KPiAgew0KPiAgCXN0cnVjdCBycGNfY3JlZCAqY3JlZCA9
IE5VTEw7DQo+IEBAIC0yNjQsNiArMzA3LDQ0IEBAIG91dDoNCj4gIAlyZXR1cm4gc3RhdHVzOw0K
PiAgfQ0KPiAgDQo+ICsvKioNCj4gKyAqIG5mczQxX2RldGVjdF90cnVua2luZyAtIERldGVjdCBz
ZXJ2ZXIgSVAgYWRkcmVzcyB0cnVua2luZyAobXYxKQ0KPiArICoNCj4gKyAqIEBjbHA6IG5mc19j
bGllbnQgdW5kZXIgdGVzdA0KPiArICogQHJlc3VsdDogT1VUOiBmb3VuZCBuZnNfY2xpZW50LCBv
ciBjbHANCj4gKyAqIEBjcmVkOiBjcmVkZW50aWFsIHRvIHVzZSBmb3IgdHJ1bmtpbmcgdGVzdA0K
PiArICoNCj4gKyAqIFJldHVybnMgTkZTNF9PSywgYSBuZWdhdGl2ZSBlcnJubywgb3IgYSBuZWdh
dGl2ZSBORlM0RVJSIHN0YXR1cy4NCj4gKyAqIElmIE5GUzRfT0sgaXMgcmV0dXJuZWQsIGFuIG5m
c19jbGllbnQgcG9pbnRlciBpcyBwbGFudGVkIGluDQo+ICsgKiAicmVzdWx0Ii4NCj4gKyAqLw0K
PiAraW50IG5mczQxX2RldGVjdF90cnVua2luZyhzdHJ1Y3QgbmZzX2NsaWVudCAqY2xwLCBzdHJ1
Y3QgbmZzX2NsaWVudCAqKnJlc3VsdCwNCj4gKwkJCSAgc3RydWN0IHJwY19jcmVkICpjcmVkKQ0K
PiArew0KPiArCXN0cnVjdCBuZnNfY2xpZW50ICp0cnVua2VkOw0KPiArCWludCBzdGF0dXM7DQo+
ICsNCj4gKwluZnM0X2JlZ2luX2RyYWluX3Nlc3Npb24oY2xwKTsNCj4gKwlzdGF0dXMgPSBuZnM0
X3Byb2NfZXhjaGFuZ2VfaWQoY2xwLCBjcmVkKTsNCj4gKwlpZiAoc3RhdHVzICE9IE5GUzRfT0sp
DQo+ICsJCWdvdG8gb3V0Ow0KPiArDQo+ICsJc3RhdHVzID0gbmZzNDFfd2Fsa19jbGllbnRfbGlz
dChjbHAsICZ0cnVua2VkLCBjcmVkKTsNCj4gKwlpZiAoc3RhdHVzICE9IE5GUzRfT0spDQo+ICsJ
CWdvdG8gb3V0Ow0KPiArDQo+ICsJc2V0X2JpdChORlM0Q0xOVF9MRUFTRV9DT05GSVJNLCAmdHJ1
bmtlZC0+Y2xfc3RhdGUpOw0KPiArCXN0YXR1cyA9IG5mczRfcHJvY19jcmVhdGVfc2Vzc2lvbih0
cnVua2VkKTsNCj4gKwlpZiAoc3RhdHVzICE9IE5GUzRfT0spDQo+ICsJCWdvdG8gb3V0Ow0KPiAr
CWNsZWFyX2JpdChORlM0Q0xOVF9MRUFTRV9DT05GSVJNLCAmdHJ1bmtlZC0+Y2xfc3RhdGUpOw0K
PiArCW5mczQxX3NldHVwX3N0YXRlX3JlbmV3YWwodHJ1bmtlZCk7DQo+ICsJbmZzX21hcmtfY2xp
ZW50X3JlYWR5KHRydW5rZWQsIE5GU19DU19SRUFEWSk7DQo+ICsJKnJlc3VsdCA9IHRydW5rZWQ7
DQo+ICtvdXQ6DQo+ICsJcmV0dXJuIHN0YXR1czsNCj4gK30NCj4gKw0KPiAgc3RydWN0IHJwY19j
cmVkICpuZnM0X2dldF9leGNoYW5nZV9pZF9jcmVkKHN0cnVjdCBuZnNfY2xpZW50ICpjbHApDQo+
ICB7DQo+ICAJc3RydWN0IHJwY19jcmVkICpjcmVkOw0KPiBAQCAtMTU3OSw2ICsxNjYwLDggQEAg
c3RhdGljIGludCBuZnM0X3JlY2xhaW1fbGVhc2Uoc3RydWN0IG5mc19jbGllbnQgKmNscCkNCj4g
IAlycGNfYXV0aGZsYXZvcl90IGZsYXZvcnNbTkZTX01BWF9TRUNGTEFWT1JTXTsNCj4gIAlpbnQg
aSwgbGVuLCBzdGF0dXM7DQo+ICANCj4gKwltdXRleF9sb2NrKCZuZnNfY2xpZF9pbml0X211dGV4
KTsNCj4gKw0KPiAgCWkgPSAwOw0KPiAgCWxlbiA9IGdzc19tZWNoX2xpc3RfcHNldWRvZmxhdm9y
cyhmbGF2b3JzKTsNCj4gIA0KPiBAQCAtMTYxMyw2ICsxNjk2LDUyIEBAIGFnYWluOg0KPiAgCQkJ
YnJlYWs7DQo+ICAJCX0NCj4gIAl9DQo+ICsNCj4gKwltdXRleF91bmxvY2soJm5mc19jbGlkX2lu
aXRfbXV0ZXgpOw0KPiArCXJldHVybiBzdGF0dXM7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICog
bmZzNF9kZXRlY3RfdHJ1bmtpbmcgLSBEZXRlY3Qgc2VydmVyIElQIGFkZHJlc3MgdHJ1bmtpbmcN
Cj4gKyAqDQo+ICsgKiBAY2xwOiBuZnNfY2xpZW50IHVuZGVyIHRlc3QNCj4gKyAqIEByZXN1bHQ6
IE9VVDogZm91bmQgbmZzX2NsaWVudCwgb3IgY2xwDQo+ICsgKg0KPiArICogUmV0dXJucyBORlM0
X09LLCBhIG5lZ2F0aXZlIGVycm5vLCBvciBhIG5lZ2F0aXZlIE5GUzRFUlIgc3RhdHVzLg0KPiAr
ICogSWYgTkZTNF9PSyBpcyByZXR1cm5lZCwgYW4gbmZzX2NsaWVudCBwb2ludGVyIGlzIHBsYW50
ZWQgaW4NCj4gKyAqICJyZXN1bHQiLg0KPiArICovDQo+ICtpbnQgbmZzNF9kZXRlY3RfdHJ1bmtp
bmcoc3RydWN0IG5mc19jbGllbnQgKmNscCwNCj4gKwkJCSBzdHJ1Y3QgbmZzX2NsaWVudCAqKnJl
c3VsdCkNCj4gK3sNCj4gKwljb25zdCBzdHJ1Y3QgbmZzNF9zdGF0ZV9yZWNvdmVyeV9vcHMgKm9w
cyA9DQo+ICsJCQkJY2xwLT5jbF9tdm9wcy0+cmVib290X3JlY292ZXJ5X29wczsNCj4gKwlzdHJ1
Y3QgcnBjX2NyZWQgKmNyZWQ7DQo+ICsJaW50IHN0YXR1czsNCj4gKw0KPiArCWRwcmludGsoIk5G
UzogPC0tICVzIG5mc19jbGllbnQgPSAlcFxuIiwgX19mdW5jX18sIGNscCk7DQo+ICsJbXV0ZXhf
bG9jaygmbmZzX2NsaWRfaW5pdF9tdXRleCk7DQo+ICsNCj4gKwlzdGF0dXMgPSAtRU5PRU5UOw0K
PiArCWNyZWQgPSBvcHMtPmdldF9jbGlkX2NyZWQoY2xwKTsNCj4gKwlpZiAoY3JlZCAhPSBOVUxM
KSB7DQo+ICsJCXN0YXR1cyA9IG9wcy0+ZGV0ZWN0X3RydW5raW5nKGNscCwgcmVzdWx0LCBjcmVk
KTsNCj4gKwkJcHV0X3JwY2NyZWQoY3JlZCk7DQo+ICsJCS8qIEhhbmRsZSBjYXNlIHdoZXJlIHRo
ZSB1c2VyIGhhc24ndCBzZXQgdXAgbWFjaGluZSBjcmVkcyAqLw0KPiArCQlpZiAoc3RhdHVzID09
IC1FQUNDRVMgJiYgY3JlZCA9PSBjbHAtPmNsX21hY2hpbmVfY3JlZCkgew0KPiArCQkJbmZzNF9j
bGVhcl9tYWNoaW5lX2NyZWQoY2xwKTsNCj4gKwkJCXN0YXR1cyA9IC1FQUdBSU47DQo+ICsJCX0N
Cj4gKwkJaWYgKHN0YXR1cyA9PSAtTkZTNEVSUl9NSU5PUl9WRVJTX01JU01BVENIKQ0KPiArCQkJ
c3RhdHVzID0gLUVQUk9UT05PU1VQUE9SVDsNCj4gKwl9DQo+ICsNCj4gKwltdXRleF91bmxvY2so
Jm5mc19jbGlkX2luaXRfbXV0ZXgpOw0KPiArCWlmIChzdGF0dXMgPT0gTkZTNF9PSykgew0KPiAr
CQljbGVhcl9iaXQoTkZTNENMTlRfTEVBU0VfRVhQSVJFRCwgJmNscC0+Y2xfc3RhdGUpOw0KPiAr
CQlkcHJpbnRrKCJORlM6IDwtLSAlcyByZXN1bHQgPSAlcFxuIiwgX19mdW5jX18sICpyZXN1bHQp
Ow0KPiArCX0gZWxzZQ0KPiArCQlkcHJpbnRrKCJORlM6IDwtLSAlcyBzdGF0dXMgPSAlZFxuIiwg
X19mdW5jX18sIHN0YXR1cyk7DQo+ICAJcmV0dXJuIHN0YXR1czsNCj4gIH0NCj4gIA0KPiANCg0K
LS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBjbGllbnQgbWFpbnRhaW5lcg0KDQpOZXRB
cHANClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3d3cubmV0YXBwLmNvbQ0KDQo=

  reply	other threads:[~2012-04-23 21:27 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-23 20:53 [PATCH 01/20] NFS: Fix comment misspelling in struct nfs_client definition Chuck Lever
2012-04-23 20:53 ` [PATCH 02/20] NFS: Use proper naming conventions for NFSv4.1 server scope fields Chuck Lever
2012-04-23 20:53 ` [PATCH 03/20] NFS: Use proper naming conventions for nfs_client.impl_id field Chuck Lever
2012-04-23 20:53 ` [PATCH 04/20] NFS: Use proper naming conventions for the nfs_client.net field Chuck Lever
2012-04-23 20:53 ` [PATCH 05/20] NFS: Clean up return code checking in nfs4_proc_exchange_id() Chuck Lever
2012-04-23 21:07   ` Myklebust, Trond
2012-04-23 20:54 ` [PATCH 06/20] NFS: Remove nfs_unique_id Chuck Lever
2012-04-23 20:54 ` [PATCH 07/20] NFS: Don't swap bytes in nfs4_construct_boot_verifier() Chuck Lever
2012-04-23 20:54 ` [PATCH 08/20] NFS: Fix NFSv4 BAD_SEQID recovery Chuck Lever
2012-04-23 20:54 ` [PATCH 09/20] NFS: Force server to drop NFSv4 state Chuck Lever
2012-04-23 21:13   ` Myklebust, Trond
2012-04-23 21:18     ` Chuck Lever
2012-04-23 20:54 ` [PATCH 10/20] NFS: Always use the same SETCLIENTID boot verifier Chuck Lever
2012-04-23 20:54 ` [PATCH 11/20] NFS: Refactor nfs_get_client(): add nfs_found_client() Chuck Lever
2012-04-23 20:54 ` [PATCH 12/20] NFS: Refactor nfs_get_client(): initialize nfs_client Chuck Lever
2012-04-23 20:55 ` [PATCH 13/20] NFS: Fix recovery from NFS4ERR_CLID_INUSE Chuck Lever
2012-04-26 16:24   ` Chuck Lever
2012-04-26 16:55     ` Myklebust, Trond
2012-04-26 18:43       ` Chuck Lever
2012-04-26 18:53         ` Myklebust, Trond
2012-04-26 18:57           ` Myklebust, Trond
2012-04-26 19:04           ` Chuck Lever
2012-04-26 19:14             ` Myklebust, Trond
2012-04-26 19:46               ` Chuck Lever
2012-04-26 19:57                 ` Myklebust, Trond
2012-04-23 20:55 ` [PATCH 14/20] NFS: Add nfs_client behavior flags Chuck Lever
2012-04-23 20:55 ` [PATCH 15/20] NFS: Introduce "migration" mount option Chuck Lever
2012-04-23 20:55 ` [PATCH 16/20] NFS: Use the same nfs_client_id4 for every server Chuck Lever
2012-04-23 20:55 ` [PATCH 17/20] NFS: EXCHANGE_ID should save the server major and minor ID Chuck Lever
2012-04-23 20:55 ` [PATCH 18/20] NFS: Detect NFSv4 server trunking when mounting Chuck Lever
2012-04-23 21:27   ` Myklebust, Trond [this message]
2012-04-23 21:43     ` Chuck Lever
2012-04-23 21:47     ` Chuck Lever
2012-04-23 21:56       ` Myklebust, Trond
2012-04-23 20:56 ` [PATCH 19/20] NFS: Add nfs4_unique_id boot parameter Chuck Lever
2012-04-23 20:56 ` [PATCH 20/20] NFS: Clean up debugging messages in fs/nfs/client.c Chuck Lever
2012-04-23 21:23   ` Malahal Naineni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1335216465.11427.34.camel@lade.trondhjem.org \
    --to=trond.myklebust@netapp.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.