From: Trond Myklebust <trondmy@primarydata.com>
To: "chuck.lever@oracle.com" <chuck.lever@oracle.com>
Cc: "anna.schumaker@netapp.com" <anna.schumaker@netapp.com>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v3 1/4] SUNRPC: Add generic helpers for xdr_stream encode/decode
Date: Sun, 19 Feb 2017 20:33:36 +0000 [thread overview]
Message-ID: <1487536411.42276.5.camel@primarydata.com> (raw)
In-Reply-To: <7ABA2E55-A24E-4765-865F-B5B103BDC8FA@oracle.com>
T24gU3VuLCAyMDE3LTAyLTE5IGF0IDE1OjA2IC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4g
PiBPbiBGZWIgMTksIDIwMTcsIGF0IDI6MjggUE0sIFRyb25kIE15a2xlYnVzdCA8dHJvbmRteUBw
cmltYXJ5ZGF0YS5jDQo+ID4gb20+IHdyb3RlOg0KPiA+IA0KPiA+IFRoYW5rcyBmb3IgdGhlIGRp
c2N1c3Npb24sIEJUVy4gSSBhcHByZWNpYXRlIHRoZSBmZWVkYmFjay4NCj4gDQo+IE5vIHByb2Js
ZW0hIEZlZWwgZnJlZSB0byBhZGQNCj4gDQo+IFJldmlld2VkLWJ5OiBDaHVjayBMZXZlciA8Y2h1
Y2subGV2ZXJAb3JhY2xlLmNvbT4NCg0KV2lsbCBkby4NCg0KPiANCj4gDQo+ID4gT24gU3VuLCAy
MDE3LTAyLTE5IGF0IDE0OjA3IC0wNTAwLCBDaHVjayBMZXZlciB3cm90ZToNCj4gPiA+ID4gT24g
RmViIDE5LCAyMDE3LCBhdCAxMjozNiBBTSwgVHJvbmQgTXlrbGVidXN0IDx0cm9uZG15QHByaW1h
cnlkDQo+ID4gPiA+IGF0YS4NCj4gPiA+ID4gY29tPiB3cm90ZToNCj4gPiA+ID4gDQo+ID4gPiA+
IE9uIFNhdCwgMjAxNy0wMi0xOCBhdCAxNzoyMSAtMDUwMCwgQ2h1Y2sgTGV2ZXIgd3JvdGU6DQo+
ID4gPiA+ID4gPiBPbiBGZWIgMTgsIDIwMTcsIGF0IDI6MTIgUE0sIFRyb25kIE15a2xlYnVzdCA8
dHJvbmQubXlrbGVidQ0KPiA+ID4gPiA+ID4gc3RAcA0KPiA+ID4gPiA+ID4gcmltYQ0KPiA+ID4g
PiA+ID4gcnlkYXRhLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IEFkZCBz
b21lIGdlbmVyaWMgaGVscGVycyBmb3IgZW5jb2RpbmcvZGVjb2Rpbmcgb3BhcXVlDQo+ID4gPiA+
ID4gPiBzdHJ1Y3R1cmVzDQo+ID4gPiA+ID4gPiBhbmQNCj4gPiA+ID4gPiA+IGJhc2ljIHUzMi91
NjQuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gSSBoYXZlIHNvbWUgcmFuZG9tLXRob3VnaHRzLXNs
YXNoLXdhY2t5LWlkZWFzLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEknbSBnb2luZyB0byBwYWlu
dCB0aGUgZ2FyZGVuIHNoZWQgYSBsaXR0bGUgc2luY2UNCj4gPiA+ID4gPiB0aGVzZSBoZWxwZXJz
IGFwcGVhciB0byBiZSBicm9hZGx5IGFwcGxpY2FibGUuDQo+ID4gPiA+ID4gR2VuZXJhbGx5IHNw
ZWFraW5nIEkgbGlrZSB0aGUgaWRlYSBvZiBidWlsZGluZw0KPiA+ID4gPiA+ICJzdHJlYW0iIHZl
cnNpb25zIG9mIHRoZSB0cmFkaXRpb25hbCBiYXNpYyB0eXBlDQo+ID4gPiA+ID4gZW5jb2RlcnMg
YW5kIGRlY29kZXJzLg0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gU2lnbmVk
LW9mZi1ieTogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5teWtsZWJ1c3RAcHJpbWFyeWRhdGENCj4g
PiA+ID4gPiA+IC5jb20NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+
IC0tLQ0KPiA+ID4gPiA+ID4gaW5jbHVkZS9saW51eC9zdW5ycGMveGRyLmggfCAxNzMNCj4gPiA+
ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+
ID4gPiA+ID4gMSBmaWxlIGNoYW5nZWQsIDE3MyBpbnNlcnRpb25zKCspDQo+ID4gPiA+ID4gPiAN
Cj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3N1bnJwYy94ZHIuaA0KPiA+
ID4gPiA+ID4gYi9pbmNsdWRlL2xpbnV4L3N1bnJwYy94ZHIuaA0KPiA+ID4gPiA+ID4gaW5kZXgg
NTZjNDhjODg0YTI0Li4zN2JmMWJlMjBiNjIgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9pbmNs
dWRlL2xpbnV4L3N1bnJwYy94ZHIuaA0KPiA+ID4gPiA+ID4gKysrIGIvaW5jbHVkZS9saW51eC9z
dW5ycGMveGRyLmgNCj4gPiA+ID4gPiA+IEBAIC0yNDIsNiArMjQyLDE3OSBAQCBleHRlcm4gdW5z
aWduZWQgaW50DQo+ID4gPiA+ID4gPiB4ZHJfcmVhZF9wYWdlcyhzdHJ1Y3QNCj4gPiA+ID4gPiA+
IHhkcl9zdHJlYW0gKnhkciwgdW5zaWduZWQgaW50IGxlbik7DQo+ID4gPiA+ID4gPiBleHRlcm4g
dm9pZCB4ZHJfZW50ZXJfcGFnZShzdHJ1Y3QgeGRyX3N0cmVhbSAqeGRyLCB1bnNpZ25lZA0KPiA+
ID4gPiA+ID4gaW50DQo+ID4gPiA+ID4gPiBsZW4pOw0KPiA+ID4gPiA+ID4gZXh0ZXJuIGludCB4
ZHJfcHJvY2Vzc19idWYoc3RydWN0IHhkcl9idWYgKmJ1ZiwgdW5zaWduZWQNCj4gPiA+ID4gPiA+
IGludA0KPiA+ID4gPiA+ID4gb2Zmc2V0LCB1bnNpZ25lZCBpbnQgbGVuLCBpbnQgKCphY3Rvciko
c3RydWN0IHNjYXR0ZXJsaXN0DQo+ID4gPiA+ID4gPiAqLA0KPiA+ID4gPiA+ID4gdm9pZA0KPiA+
ID4gPiA+ID4gKiksIHZvaWQgKmRhdGEpOw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiArLyoq
DQo+ID4gPiA+ID4gPiArICogeGRyX2FsaWduX3NpemUgLSBDYWxjdWxhdGUgcGFkZGVkIHNpemUg
b2YgYW4gb2JqZWN0DQo+ID4gPiA+ID4gPiArICogQG46IFNpemUgb2YgYW4gb2JqZWN0IGJlaW5n
IFhEUiBlbmNvZGVkIChpbiBieXRlcykNCj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gKyAq
IFJldHVybiB2YWx1ZToNCj4gPiA+ID4gPiA+ICsgKsKgwqDCoFNpemUgKGluIGJ5dGVzKSBvZiB0
aGUgb2JqZWN0IGluY2x1ZGluZyB4ZHIgcGFkZGluZw0KPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4g
PiA+ID4gK3N0YXRpYyBpbmxpbmUgc2l6ZV90DQo+ID4gPiA+ID4gPiAreGRyX2FsaWduX3NpemUo
c2l6ZV90IG4pDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gKwljb25zdCBzaXplX3QgbWFz
ayA9IHNpemVvZihfX3UzMikgLSAxOw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IEkga25vdyB0aGlz
IGRvZXNuJ3QgbWFrZSBhIGZ1bmN0aW9uYWwgZGlmZmVyZW5jZSwgYnV0DQo+ID4gPiA+ID4gSSdt
IHdvbmRlcmluZyBpZiB0aGlzIHNob3VsZCBiZSBzaXplb2YoX19iZTMyKSwgc2luY2UNCj4gPiA+
ID4gPiBpdCBpcyBhY3R1YWxseSB0aGUgc2l6ZSBvZiBhIHdpcmUgb2JqZWN0PyBTZWVtcyBsaWtl
DQo+ID4gPiA+ID4gdGhhdCBpcyBhIGNvbW1vbiBxdWVzdGlvbiB3aGVyZXZlciBzaXplb2YgaXMg
dXNlZA0KPiA+ID4gPiA+IGJlbG93Lg0KPiA+ID4gPiANCj4gPiA+ID4gVGhlIF9fYmUzMiBpcyBy
ZXF1aXJlZCB0byBiZSB0aGUgc2FtZSBzaXplIGFzIHUzMi4gVGhlIG9ubHkNCj4gPiA+ID4gYWxs
b3dlZA0KPiA+ID4gPiBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIHR3byBpcyBiZSB0aGUgZW5kaWFu
bmVzcy4NCj4gPiA+IA0KPiA+ID4gUmlnaHQsIHNpemVvZihfX3UzMikgPT0gc2l6ZW9mKF9fYmUz
MikuwqDCoF9fYmUgaGFzIGFsd2F5cw0KPiA+ID4gYmVlbiBhYm91dCBlbmRpYW4gYW5ub3RhdGlv
bjsgbm8gcmVhbCBmdW5jdGlvbmFsIGRpZmZlcmVuY2UNCj4gPiA+IHdpdGggX191Lg0KPiA+ID4g
DQo+ID4gPiBUaGUgaXNzdWUgZm9yIG1lIGlzIHByZWNpc2lvbiBvZiBkb2N1bWVudGF0aW9uIChv
ciwgaW4gc29tZQ0KPiA+ID4gc2Vuc2UsIGNvZGUgcmVhZGFiaWxpdHkpLiBJbiBhbGwgb2YgdGhl
c2UgY2FzZXMsIGl0J3Mgbm90DQo+ID4gPiB0aGUgc2l6ZSBvZiB0aGUgbG9jYWwgdmFyaWFibGUg
dGhhdCBpcyBpbXBvcnRhbnQsIGl0J3MgdGhlDQo+ID4gPiBzaXplIG9mIHRoZSAoWERSIGVuY29k
ZWQpIHdpcmUgb2JqZWN0LiBUaGF0J3Mgc2l6ZW9mKF9fYmUzMikuDQo+ID4gPiANCj4gPiA+IFRo
b3NlIGp1c3QgaGFwcGVuIHRvIGJlIHRoZSBzYW1lIGhlcmUuIEl0J3MgcHJldHR5IGVhc3kgdG8N
Cj4gPiA+IG1pc3Rha2UgdGhlIHNpemUgb2YgYSBsb2NhbCBvYmplY3QgYXMgYmVpbmcgYWx3YXlz
IHRoZSBzYW1lDQo+ID4gPiBhcyB0aGUgc2l6ZSBvZiB0aGUgZW5jb2RlZCBkYXRhIHR5cGUuIEkn
dmUgZG9uZSB0aGF0IG15c2VsZg0KPiA+ID4gb2Z0ZW4gZW5vdWdoIHRoYXQgaXQgbWFrZXMgc2Vu
c2UgdG8gYmUgY29uc2lzdGVudCBhbmQNCj4gPiA+IGNhcmVmdWwsIGV2ZW4gaW4gdGhlIHNpbXBs
ZSBjYXNlcy4NCj4gPiA+IA0KPiA+ID4gSSdtIG5vdCBnb2luZyB0byBtYWtlIGEgYmlnIGRlYWws
IGJ1dCBJJ2QgbGlrZSB0byBwb2ludCBvdXQNCj4gPiA+IHRoYXQgc3VidGxlIGRpZmZlcmVuY2Uu
IElNTyBpdCB3b3VsZCBtYWtlIG1vcmUgc2Vuc2UgdG8NCj4gPiA+IGh1bWFuIHJlYWRlcnMgaWYg
dGhlc2Ugd2VyZSBfX2JlIGFuZCBub3QgX191Lg0KPiA+IA0KPiA+IEZhaXIgZW5vdWdoLiBJIGNh
biB1cGRhdGUgdGhhdC4NCj4gPiANCj4gPiA+IA0KPiA+ID4gPiA+IElzIHRoaXMgYSBjb25zdGFu
dCB2YXJpYWJsZSByYXRoZXIgdGhhbiBhbiBlbnVtIGJlY2F1c2UNCj4gPiA+ID4gPiB5b3Ugd2Fu
dCBpdCB0byByZXRhaW4gdGhlIHR5cGUgb2Ygc2l6ZV90IChtYXRjaGluZyB0aGUNCj4gPiA+ID4g
PiB0eXBlIG9mIHRoZSB4ZHJfaW5saW5lX3tlbixkZX1jb2RlKCkgZnVuY3Rpb25zKSA/DQo+ID4g
PiA+IA0KPiA+ID4gPiBJdCdzIHJlYWxseSBqdXN0IGZvciBlZmZpY2llbmN5LCBpbiBvcmRlciB0
byBwcm9kIGdjYyBpbnRvDQo+ID4gPiA+IG9wdGltaXNpbmcNCj4gPiA+ID4gaXQgYXMgaXQgd291
bGQgYW55IG90aGVyIGNvbnN0YW50Lg0KPiA+ID4gPiANCj4gPiA+ID4gPiBTaW5jZSB3ZSBzZWUg
c2l6ZW9mKHlhZGEpIHJlcGVhdGVkIGVsc2V3aGVyZSwgZGlkIHlvdQ0KPiA+ID4gPiA+IGNvbnNp
ZGVyIGRlZmluaW5nIHNpemUgY29uc3RhbnRzIGluIGEgc2NvcGUgd2hlcmUgdGhleQ0KPiA+ID4g
PiA+IGNhbiBiZSBzaGFyZWQgYW1vbmdzdCBhbGwgb2YgdGhlIFhEUiBmdW5jdGlvbnM/DQo+ID4g
PiA+ID4gDQo+ID4gPiA+ID4gRm9yIGV4YW1wbGUsIHhkcl9yZXNlcnZlX3NwYWNlIGl0c2VsZiBj
b3VsZCBpbW1lZGlhdGVseQ0KPiA+ID4gPiA+IG1ha2UgdXNlIG9mIGEgInNpemVvZihfX2JlMzIp
IC0gMSIgY29uc3RhbnQuDQo+ID4gPiA+IA0KPiA+ID4gPiBUaGF0IGNvdWxkIGJlIGRvbmUuIEkg
aGF2ZW4ndCByZWFsbHkgY29uc2lkZXJlZCBpdC4NCj4gPiA+ID4gDQo+ID4gPiA+ID4gSXMgeW91
ciBpbnRlbnRpb24gdG8gcmVwbGFjZSBYRFJfUVVBRExFTiB3aXRoIHRoaXMNCj4gPiA+ID4gPiBm
dW5jdGlvbiBldmVudHVhbGx5Pw0KPiA+ID4gPiANCj4gPiA+ID4gRXZlbnR1YWxseSwgSSdkIGxp
a2UgdXMgdG8gZ2V0IHJpZCBvZiBtb3N0IG9mIHRoZSBvcGVuIGNvZGVkDQo+ID4gPiA+IGluc3Rh
bmNlcw0KPiA+ID4gPiBvZiAncG9pbnRlciB0byBfX2JlMzInIGluIHRoZSBORlMgY29kZSwgYW5k
IGhpZGUgYWxsIGtub3dsZWRnZQ0KPiA+ID4gPiBvZg0KPiA+ID4gPiB0aGF0DQo+ID4gPiA+IGlu
IHN0cnVjdCB4ZHJfc3RyZWFtIGFuZCB0aGVzZSBTVU5SUEMgbGF5ZXJlZCBoZWxwZXJzLg0KPiA+
ID4gDQo+ID4gPiBTb3VuZHMgZ29vZCB0byBtZS4NCj4gPiA+IA0KPiA+ID4gDQo+ID4gPiA+ID4g
PiArDQo+ID4gPiA+ID4gPiArCXJldHVybiAobiArIG1hc2spICYgfm1hc2s7DQo+ID4gPiA+ID4g
PiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKy8qKg0KPiA+ID4gPiA+ID4gKyAqIHhk
cl9zdHJlYW1fZW5jb2RlX3UzMiAtIEVuY29kZSBhIDMyLWJpdCBpbnRlZ2VyDQo+ID4gPiA+ID4g
PiArICogQHhkcjogcG9pbnRlciB0byB4ZHJfc3RyZWFtDQo+ID4gPiA+ID4gPiArICogQG46IGlu
dGVnZXIgdG8gZW5jb2RlDQo+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ICsgKiBSZXR1cm4g
dmFsdWVzOg0KPiA+ID4gPiA+ID4gKyAqwqDCoMKgT24gc3VjY2VzcywgcmV0dXJucyBsZW5ndGgg
aW4gYnl0ZXMgb2YgWERSIGJ1ZmZlcg0KPiA+ID4gPiA+ID4gY29uc3VtZWQNCj4gPiA+ID4gPiA+
ICsgKsKgwqDCoCUtRU5PQlVGUyBvbiBYRFIgYnVmZmVyIG92ZXJmbG93DQo+ID4gPiA+ID4gDQo+
ID4gPiA+ID4gSSd2ZSBuZXZlciBiZWVuIGNyYXp5IGFib3V0IHRoZXNlIGFtcGxpZmllZCByZXR1
cm4NCj4gPiA+ID4gPiB0eXBlcywgdGhvdWdoIEkga25vdyBpdCdzIHR5cGljYWwga2VybmVsIGNv
ZGluZyBzdHlsZS4NCj4gPiA+ID4gPiBIZXJlLCB0aG91Z2gsIEkgd29uZGVyIGlmIHRoZXkgYXJl
IHJlYWxseSBuZWNlc3NhcnkuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gVGhlIHJldHVybmVkIGxl
bmd0aCBzZWVtcyB0byBiZSBpbnRlcmVzdGluZyBvbmx5IGZvcg0KPiA+ID4gPiA+IGRlY29kaW5n
IHZhcmlhYmxlLWxlbmd0aCBvYmplY3RzIChmYXJ0aGVyIGJlbG93KS4gTWF5YmUNCj4gPiA+ID4g
PiB0aG9zZSBhcmUgdGhlIG9ubHkgZnVuY3Rpb25zIHRoYXQgbmVlZCB0byBwcm92aWRlIGENCj4g
PiA+ID4gPiBwb3NpdGl2ZSByZXR1cm4gdmFsdWU/DQo+ID4gPiA+IA0KPiA+ID4gPiBORlN2NCBp
bnRyb2R1Y2VzIHRoZSAoSU1PIG5hc3R5KSBoYWJpdCBvZiBuZXN0aW5nIFhEUi1lbmNvZGVkDQo+
ID4gPiA+IG9iamVjdHMNCj4gPiA+ID4gaW5zaWRlIGEgdmFyaWFibGUgbGVuZ3RoIG9wYXF1ZSBv
YmplY3QgKHNheSBoZWxsbyB0byB0eXBlDQo+ID4gPiA+ICJhdHRybGlzdDQiKS4NCj4gPiA+IA0K
PiA+ID4gQW5kIHBORlMgbGF5b3V0cy4gRmFpciBlbm91Z2guDQo+ID4gPiANCj4gPiA+IA0KPiA+
ID4gPiBJbiB0aGF0IGNhc2UsIHdlIG5lZWQgdG8ga2VlcCBhIHJ1bm5pbmcgdGFsbHkgb2YgdGhl
IGxlbmd0aCBvZg0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gb2JqZWN0cyB3ZSBoYXZlIFhEUiBlbmNv
ZGVkIHNvIHRoYXQgd2UgY2FuIHJldHJvYWN0aXZlbHkgc2V0DQo+ID4gPiA+IHRoZQ0KPiA+ID4g
PiBsZW5ndGgNCj4gPiA+ID4gb2YgdGhlIG9wYXF1ZSBvYmplY3QuIEN1cnJlbnRseSB3ZSB1c2Ug
dGhlIHhkcl9zdHJlYW1fcG9zKCkgdG8NCj4gPiA+ID4gZGV0ZXJtaW5lIHRoYXQgbGVuZ3RoLCBi
dXQgaXQgbWlnaHQgYmUgbmljZSB0byByZXBsYWNlIHRoYXQNCj4gPiA+ID4gd2l0aA0KPiA+ID4g
PiBzb21ldGhpbmcgYSBsaXR0bGUgbW9yZSBkaXJlY3QuDQo+ID4gPiANCj4gPiA+IFRoZSBuZXcg
aGVscGVycyBhcHBlYXIgdG8gYmUgYWJzdHJhY3RpbmcgYXdheSBmcm9tIGENCj4gPiA+IGRpcmVj
dCBhcHByb2FjaC4gSU1ITyBzdGF5aW5nIHdpdGggc29tZXRoaW5nIHRoYXQgbG9va3MNCj4gPiA+
IGxpa2UgYSBmdW5jdGlvbiBjYWxsIChsaWtlIHhkcl9zdHJlYW1fcG9zKSBzZWVtcyBsaWtlDQo+
ID4gPiBpdCBpcyBjbGVhbiBhbmQgY29uc2lzdGVudCB3aXRoIHRoZXNlIG5ldyBoZWxwZXJzLg0K
PiA+ID4gDQo+ID4gPiANCj4gPiA+ID4gTm90ZSBhbHNvIHRoYXQgdGhlIGxlbmd0aHMgcmV0dXJu
ZWQgaGVyZSBhcmUgbm90IHRoZSBvYmplY3QNCj4gPiA+ID4gc2l6ZXMNCj4gPiA+ID4gdGhlbXNl
bHZlcywgYnV0IHRoZSBhbW91bnQgb2YgYnVmZmVyIHNwYWNlIGNvbnN1bWVkIChpLmUuIHRoZQ0K
PiA+ID4gPiBhbGlnbmVkDQo+ID4gPiA+IHNpemUpLg0KPiA+ID4gDQo+ID4gPiBNYWtlcyBzZW5z
ZS4gU3RpbGwsIHNlZW1zIGxpa2UgdGhlIGNhbGxlcnMgYWxyZWFkeSBrbm93DQo+ID4gPiB0aGVz
ZSAic3BhY2UgY29uc3VtZWQiIHZhbHVlcyBpbiBldmVyeSBjYXNlLiBNYXliZSB0aGF0DQo+ID4g
PiB3b24ndCBiZSB0cnVlIHdoZW4gdGhlc2UgaGVscGVycyBhcmUgZ2x1ZWQgdG9nZXRoZXIgdG8N
Cj4gPiA+IGhhbmRsZSBtb3JlIGFic3RyYWN0IGRhdGEgdHlwZXMuDQo+ID4gPiANCj4gPiA+ID4g
PiBQZXJoYXBzIHRoZSBXQVJOX09OX09OQ0UgY2FsbHMgYWRkZWQgaW4gbGF0ZXIgcGF0Y2hlcw0K
PiA+ID4gPiA+IHNob3VsZCBiZSBpbiB0aGVzZSBoZWxwZXJzIGluc3RlYWQgb2YgaW4gdGhlaXIg
Y2FsbGVycy4NCj4gPiA+ID4gPiBUaGVuIHRoZSBlbmNvZGVyIGhlbHBlcnMgY2FuIHJldHVybiB2
b2lkLg0KPiA+ID4gPiANCj4gPiA+ID4gQXQgc29tZSBwb2ludCwgSSdkIGxpa2UgdG8gcmVpbnN0
YXRlIHRoZSBwcmFjdGljZSBvZiByZXR1cm5pbmcNCj4gPiA+ID4gYW4NCj4gPiA+ID4gZXJyb3IN
Cj4gPiA+ID4gd2hlbiBlbmNvZGluZyBmYWlscy4gSXQgbWF5IGJlIGJldHRlciB0byBhYm9ydCBz
ZW5kaW5nIGENCj4gPiA+ID4gdHJ1bmNhdGVkDQo+ID4gPiA+IFJQQw0KPiA+ID4gPiBjYWxsIHJh
dGhlciB0aGFuIGhhdmluZyBpdCBleGVjdXRlIHBhcnRpYWxseTsgc3BlY2lhbGx5IG5vdw0KPiA+
ID4gPiB0aGF0DQo+ID4gPiA+IHdlJ3JlDQo+ID4gPiA+IGZpbmFsbHkgc3RhcnRpbmcgdG8gdXNl
IENPTVBPVU5EIHRvIGNyZWF0ZSBtb3JlIGNvbXBsZXgNCj4gPiA+ID4gb3BlcmF0aW9ucy4NCj4g
PiA+IA0KPiA+ID4gSSBhZ3JlZSwgSU1PIHRoYXQgd291bGQgYmUgYSBiZXR0ZXIgYXBwcm9hY2gu
DQo+ID4gPiANCj4gPiA+IA0KPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBp
bmxpbmUgc3NpemVfdA0KPiA+ID4gPiA+ID4gK3hkcl9zdHJlYW1fZW5jb2RlX3UzMihzdHJ1Y3Qg
eGRyX3N0cmVhbSAqeGRyLCBfX3UzMiBuKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJ
Y29uc3Qgc2l6ZV90IGxlbiA9IHNpemVvZihuKTsNCj4gPiA+ID4gPiA+ICsJX19iZTMyICpwID0g
eGRyX3Jlc2VydmVfc3BhY2UoeGRyLCBsZW4pOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g
KwlpZiAodW5saWtlbHkoIXApKQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FTk9CVUZTOw0KPiA+
ID4gPiA+ID4gKwkqcCA9IGNwdV90b19iZTMyKG4pOw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gbGVu
Ow0KPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsvKioNCj4gPiA+
ID4gPiA+ICsgKiB4ZHJfc3RyZWFtX2VuY29kZV91NjQgLSBFbmNvZGUgYSA2NC1iaXQgaW50ZWdl
cg0KPiA+ID4gPiA+ID4gKyAqIEB4ZHI6IHBvaW50ZXIgdG8geGRyX3N0cmVhbQ0KPiA+ID4gPiA+
ID4gKyAqIEBuOiA2NC1iaXQgaW50ZWdlciB0byBlbmNvZGUNCj4gPiA+ID4gPiA+ICsgKg0KPiA+
ID4gPiA+ID4gKyAqIFJldHVybiB2YWx1ZXM6DQo+ID4gPiA+ID4gPiArICrCoMKgwqBPbiBzdWNj
ZXNzLCByZXR1cm5zIGxlbmd0aCBpbiBieXRlcyBvZiBYRFIgYnVmZmVyDQo+ID4gPiA+ID4gPiBj
b25zdW1lZA0KPiA+ID4gPiA+ID4gKyAqwqDCoMKgJS1FTk9CVUZTIG9uIFhEUiBidWZmZXIgb3Zl
cmZsb3cNCj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIHNzaXpl
X3QNCj4gPiA+ID4gPiA+ICt4ZHJfc3RyZWFtX2VuY29kZV91NjQoc3RydWN0IHhkcl9zdHJlYW0g
KnhkciwgX191NjQgbikNCj4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiArCWNvbnN0IHNpemVf
dCBsZW4gPSBzaXplb2Yobik7DQo+ID4gPiA+ID4gPiArCV9fYmUzMiAqcCA9IHhkcl9yZXNlcnZl
X3NwYWNlKHhkciwgbGVuKTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKHVubGlr
ZWx5KCFwKSkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAtRU5PQlVGUzsNCj4gPiA+ID4gPiA+ICsJ
eGRyX2VuY29kZV9oeXBlcihwLCBuKTsNCj4gPiA+ID4gPiA+ICsJcmV0dXJuIGxlbjsNCj4gPiA+
ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gPiAr
ICogeGRyX3N0cmVhbV9lbmNvZGVfb3BhcXVlX2ZpeGVkIC0gRW5jb2RlIGZpeGVkIGxlbmd0aA0K
PiA+ID4gPiA+ID4gb3BhcXVlDQo+ID4gPiA+ID4gPiB4ZHINCj4gPiA+ID4gPiA+IGRhdGENCj4g
PiA+ID4gPiA+ICsgKiBAeGRyOiBwb2ludGVyIHRvIHhkcl9zdHJlYW0NCj4gPiA+ID4gPiA+ICsg
KiBAcHRyOiBwb2ludGVyIHRvIG9wYXF1ZSBkYXRhIG9iamVjdA0KPiA+ID4gPiA+ID4gKyAqIEBs
ZW46IHNpemUgb2Ygb2JqZWN0IHBvaW50ZWQgdG8gYnkgQHB0cg0KPiA+ID4gPiA+ID4gKyAqDQo+
ID4gPiA+ID4gPiArICogUmV0dXJuIHZhbHVlczoNCj4gPiA+ID4gPiA+ICsgKsKgwqDCoE9uIHN1
Y2Nlc3MsIHJldHVybnMgbGVuZ3RoIGluIGJ5dGVzIG9mIFhEUiBidWZmZXINCj4gPiA+ID4gPiA+
IGNvbnN1bWVkDQo+ID4gPiA+ID4gPiArICrCoMKgwqAlLUVOT0JVRlMgb24gWERSIGJ1ZmZlciBv
dmVyZmxvdw0KPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4gK3N0YXRpYyBpbmxpbmUgc3Np
emVfdA0KPiA+ID4gPiA+ID4gK3hkcl9zdHJlYW1fZW5jb2RlX29wYXF1ZV9maXhlZChzdHJ1Y3Qg
eGRyX3N0cmVhbSAqeGRyLA0KPiA+ID4gPiA+ID4gY29uc3QNCj4gPiA+ID4gPiA+IHZvaWQNCj4g
PiA+ID4gPiA+ICpwdHIsIHNpemVfdCBsZW4pDQo+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4g
KwlfX2JlMzIgKnAgPSB4ZHJfcmVzZXJ2ZV9zcGFjZSh4ZHIsIGxlbik7DQo+ID4gPiA+ID4gPiAr
DQo+ID4gPiA+ID4gPiArCWlmICh1bmxpa2VseSghcCkpDQo+ID4gPiA+ID4gPiArCQlyZXR1cm4g
LUVOT0JVRlM7DQo+ID4gPiA+ID4gPiArCXhkcl9lbmNvZGVfb3BhcXVlX2ZpeGVkKHAsIHB0ciwg
bGVuKTsNCj4gPiA+ID4gPiA+ICsJcmV0dXJuIHhkcl9hbGlnbl9zaXplKGxlbik7DQo+ID4gPiA+
ID4gDQo+ID4gPiA+ID4gU2VlbXMgbGlrZSB0aGUgY2FsbGVyIGNhbiB1c2UgeGRyX2FsaWduX3Np
emUoKSBqdXN0IGFzDQo+ID4gPiA+ID4gZWFzaWx5IGFzIG92ZXJsb2FkaW5nIHRoZSByZXR1cm4g
dmFsdWUgaGVyZSwgZm9yIGV4YW1wbGUuDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gQnV0IEkgY2Fu
J3QgdGhpbmsgb2YgYW55IGZpeGVkLXNpemUgb3BhcXVlIFhEUiBvYmplY3QNCj4gPiA+ID4gPiB0
aGF0IGlzIG5vdCBhbHJlYWR5IHByb3Blcmx5IHJvdW5kZWQgdXAsIG9yIHdoZXJlIHRoZQ0KPiA+
ID4gPiA+IGxlbmd0aCBpcyBub3QgYWxyZWFkeSBrbm93biB0byB0aGUgWERSIGxheWVyIChhcyBh
DQo+ID4gPiA+ID4gZGVmaW5lZCBtYWNybyBjb25zdGFudCkuDQo+ID4gPiA+ID4gDQo+ID4gPiA+
ID4gDQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKy8qKg0KPiA+
ID4gPiA+ID4gKyAqIHhkcl9zdHJlYW1fZW5jb2RlX29wYXF1ZSAtIEVuY29kZSB2YXJpYWJsZSBs
ZW5ndGgNCj4gPiA+ID4gPiA+IG9wYXF1ZQ0KPiA+ID4gPiA+ID4geGRyDQo+ID4gPiA+ID4gPiBk
YXRhDQo+ID4gPiA+ID4gPiArICogQHhkcjogcG9pbnRlciB0byB4ZHJfc3RyZWFtDQo+ID4gPiA+
ID4gPiArICogQHB0cjogcG9pbnRlciB0byBvcGFxdWUgZGF0YSBvYmplY3QNCj4gPiA+ID4gPiA+
ICsgKiBAbGVuOiBzaXplIG9mIG9iamVjdCBwb2ludGVkIHRvIGJ5IEBwdHINCj4gPiA+ID4gPiA+
ICsgKg0KPiA+ID4gPiA+ID4gKyAqIFJldHVybiB2YWx1ZXM6DQo+ID4gPiA+ID4gPiArICrCoMKg
wqBPbiBzdWNjZXNzLCByZXR1cm5zIGxlbmd0aCBpbiBieXRlcyBvZiBYRFIgYnVmZmVyDQo+ID4g
PiA+ID4gPiBjb25zdW1lZA0KPiA+ID4gPiA+ID4gKyAqwqDCoMKgJS1FTk9CVUZTIG9uIFhEUiBi
dWZmZXIgb3ZlcmZsb3cNCj4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW5s
aW5lIHNzaXplX3QNCj4gPiA+ID4gPiA+ICt4ZHJfc3RyZWFtX2VuY29kZV9vcGFxdWUoc3RydWN0
IHhkcl9zdHJlYW0gKnhkciwgY29uc3QNCj4gPiA+ID4gPiA+IHZvaWQNCj4gPiA+ID4gPiA+ICpw
dHIsDQo+ID4gPiA+ID4gPiBzaXplX3QgbGVuKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+
ICsJc2l6ZV90IGNvdW50ID0gc2l6ZW9mKF9fdTMyKSArDQo+ID4gPiA+ID4gPiB4ZHJfYWxpZ25f
c2l6ZShsZW4pOw0KPiA+ID4gPiA+ID4gKwlfX2JlMzIgKnAgPSB4ZHJfcmVzZXJ2ZV9zcGFjZSh4
ZHIsIGNvdW50KTsNCj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsJaWYgKHVubGlrZWx5KCFw
KSkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAtRU5PQlVGUzsNCj4gPiA+ID4gPiA+ICsJeGRyX2Vu
Y29kZV9vcGFxdWUocCwgcHRyLCBsZW4pOw0KPiA+ID4gPiA+ID4gKwlyZXR1cm4gY291bnQ7DQo+
ID4gPiA+ID4gDQo+ID4gPiA+ID4gVGhlc2UgaGVscGVycyBhbHJlYWR5IHVwZGF0ZSB0aGUgc3Rh
dGUgb2YgdGhlIHBhc3NlZA0KPiA+ID4gPiA+IGluIHhkcl9zdHJlYW0sIHNvIGEgY2FsbGVyIHR5
cGljYWxseSB3b3VsZCBub3QgbmVlZA0KPiA+ID4gPiA+IHRvIGNhcmUgbXVjaCBhYm91dCB0aGUg
Ynl0ZXMgY29uc3VtZWQgYnkgdGhlIGVuY29kZWQNCj4gPiA+ID4gPiBvcGFxdWUuDQo+ID4gPiA+
ID4gDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+
ID4gKy8qKg0KPiA+ID4gPiA+ID4gKyAqIHhkcl9zdHJlYW1fZGVjb2RlX3UzMiAtIERlY29kZSBh
IDMyLWJpdCBpbnRlZ2VyDQo+ID4gPiA+ID4gPiArICogQHhkcjogcG9pbnRlciB0byB4ZHJfc3Ry
ZWFtDQo+ID4gPiA+ID4gPiArICogQHB0cjogbG9jYXRpb24gdG8gc3RvcmUgaW50ZWdlcg0KPiA+
ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gPiArICogUmV0dXJuIHZhbHVlczoNCj4gPiA+ID4gPiA+
ICsgKsKgwqDCoCUwIG9uIHN1Y2Nlc3MNCj4gPiA+ID4gPiA+ICsgKsKgwqDCoCUtRU5PQlVGUyBv
biBYRFIgYnVmZmVyIG92ZXJmbG93DQo+ID4gPiA+ID4gPiArICovDQo+ID4gPiA+ID4gPiArc3Rh
dGljIGlubGluZSBzc2l6ZV90DQo+ID4gPiA+ID4gPiAreGRyX3N0cmVhbV9kZWNvZGVfdTMyKHN0
cnVjdCB4ZHJfc3RyZWFtICp4ZHIsIF9fdTMyICpwdHIpDQo+ID4gPiA+ID4gPiArew0KPiA+ID4g
PiA+ID4gKwljb25zdCBzaXplX3QgY291bnQgPSBzaXplb2YoKnB0cik7DQo+ID4gPiA+ID4gPiAr
CV9fYmUzMiAqcCA9IHhkcl9pbmxpbmVfZGVjb2RlKHhkciwgY291bnQpOw0KPiA+ID4gPiA+ID4g
Kw0KPiA+ID4gPiA+ID4gKwlpZiAodW5saWtlbHkoIXApKQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJu
IC1FTk9CVUZTOw0KPiA+ID4gPiA+ID4gKwkqcHRyID0gYmUzMl90b19jcHVwKHApOw0KPiA+ID4g
PiA+ID4gKwlyZXR1cm4gMDsNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBObyBsZW5ndGggcmV0dXJu
ZWQgaGVyZS4gVGhlIGNhbGxlciBrbm93cyB0aGUgbGVuZ3RoDQo+ID4gPiA+ID4gb2YgdGhpcyBv
YmplY3QsIGNsZWFybHksIGFuZCBvbmx5IGNhcmVzIGFib3V0IHdoZXRoZXINCj4gPiA+ID4gPiBk
ZWNvZGluZyBoYXMgb3ZlcnJ1biB0aGUgWERSIHN0cmVhbS4NCj4gPiA+ID4gDQo+ID4gPiA+IFll
cy4gRWFybGllciB2ZXJzaW9ucyByZXR1cm5lZCA+IDAsIGJ1dCBJIGZpZ3VyZWQgdGhhdCBjb3Vu
dGluZw0KPiA+ID4gPiB0aGUNCj4gPiA+ID4gYnVmZmVyIHNwYWNlIGlzIG5vdCBhcyBpbXBvcnRh
bnQgd2hlbiBkZWNvZGluZy4gSSBjYW4ndCB0aGluaw0KPiA+ID4gPiBvZg0KPiA+ID4gPiB0b28N
Cj4gPiA+ID4gbWFueSB1c2UgY2FzZXMuDQo+ID4gPiA+IA0KPiA+ID4gPiA+ID4gK30NCj4gPiA+
ID4gPiA+ICsNCj4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiA+ICsgKiB4ZHJfc3RyZWFtX2Rl
Y29kZV9vcGFxdWVfZml4ZWQgLSBEZWNvZGUgZml4ZWQgbGVuZ3RoDQo+ID4gPiA+ID4gPiBvcGFx
dWUNCj4gPiA+ID4gPiA+IHhkcg0KPiA+ID4gPiA+ID4gZGF0YQ0KPiA+ID4gPiA+ID4gKyAqIEB4
ZHI6IHBvaW50ZXIgdG8geGRyX3N0cmVhbQ0KPiA+ID4gPiA+ID4gKyAqIEBwdHI6IGxvY2F0aW9u
IHRvIHN0b3JlIGRhdGENCj4gPiA+ID4gPiA+ICsgKiBAbGVuOiBzaXplIG9mIGJ1ZmZlciBwb2lu
dGVkIHRvIGJ5IEBwdHINCj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gKyAqIFJldHVybiB2
YWx1ZXM6DQo+ID4gPiA+ID4gPiArICrCoMKgwqBPbiBzdWNjZXNzLCByZXR1cm5zIHNpemUgb2Yg
b2JqZWN0IHN0b3JlZCBpbiBAcHRyDQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gWW91J3JlIHJldHVy
bmluZyB0aGUgcGFzc2VkLWluIGxlbmd0aC4gVGh1cyB0aGUgY2FsbGVyDQo+ID4gPiA+ID4gYWxy
ZWFkeSBrbm93cyB0aGUgc2l6ZSBvZiB0aGUgb2JqZWN0IHN0b3JlZCBhdCBAcHRyLg0KPiA+ID4g
PiANCj4gPiA+ID4gQ29uc2lzdGVuY3ksIGFuZCBpdCBhbGxvd3MgaXQgdG8gYmUgZWFzaWx5IHVz
ZWQgYXMgYSBoZWxwZXINCj4gPiA+ID4gaW5zaWRlDQo+ID4gPiA+IG90aGVyIGZ1bmN0aW9ucyB0
aGF0IGRvIG5lZWQgdG8gcmV0dXJuIHRoZSBvYmplY3QgbGVuZ3RoLg0KPiA+ID4gDQo+ID4gPiBH
b2luZyBmb3IgZWFzZSBvZiBjb21wb3NpbmcgdGhlc2UgZnVuY3Rpb25zLiBPSy4NCj4gPiA+IA0K
PiA+ID4gDQo+ID4gPiA+IE5vdGUgdGhhdCB0aGUgZnVuY3Rpb24gaXMgaW5saW5lZCwgc28gdGhl
IGNvbXBpbGVyIHNob3VsZA0KPiA+ID4gPiBub3JtYWxseQ0KPiA+ID4gPiBvcHRpbWlzZSBhd2F5
IHJldHVybiB2YWx1ZXMgdGhhdCBhcmUgdW51c2VkIGJ5IHRoZSBjYWxsZXIuDQo+ID4gPiANCj4g
PiA+IFRydWUuIEhvd2V2ZXIgZnV0dXJlIGNvZGUgcmVhZGVycyBtaWdodCB3b25kZXIgd2h5IHRo
aXMNCj4gPiA+IHZhbHVlIGlzIGJlaW5nIGNvbXB1dGVkIGlmIHRoZSB2YWx1ZSBvciB0aGUgY29t
cHV0YXRpb24NCj4gPiA+IGl0c2VsZiBpcyB1bm5lZWRlZCBpbiBtb3N0IGNhc2VzLg0KPiA+ID4g
DQo+ID4gPiBTZWVtcyBsaWtlIGEgc2VwYXJhdGUgaGVscGVyIHRoYXQgZGVyaXZlcyB0aGlzIHZh
bHVlDQo+ID4gPiB3aGVyZSBhbmQgd2hlbiBpdCBpcyBuZWVkZWQgbWlnaHQgYmUgY2xlYW5lcjsg
YnV0IHRoYXQNCj4gPiA+IGlzIGVudGlyZWx5IHN1YmplY3RpdmUuDQo+ID4gPiANCj4gPiA+IA0K
PiA+ID4gPiA+ID4gKyAqwqDCoMKgJS1FTk9CVUZTIG9uIFhEUiBidWZmZXIgb3ZlcmZsb3cNCj4g
PiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ICtzdGF0aWMgaW5saW5lIHNzaXplX3QNCj4gPiA+
ID4gPiA+ICt4ZHJfc3RyZWFtX2RlY29kZV9vcGFxdWVfZml4ZWQoc3RydWN0IHhkcl9zdHJlYW0g
KnhkciwNCj4gPiA+ID4gPiA+IHZvaWQNCj4gPiA+ID4gPiA+ICpwdHIsDQo+ID4gPiA+ID4gPiBz
aXplX3QgbGVuKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJX19iZTMyICpwID0geGRy
X2lubGluZV9kZWNvZGUoeGRyLCBsZW4pOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gKwlp
ZiAodW5saWtlbHkoIXApKQ0KPiA+ID4gPiA+ID4gKwkJcmV0dXJuIC1FTk9CVUZTOw0KPiA+ID4g
PiA+ID4gKwl4ZHJfZGVjb2RlX29wYXF1ZV9maXhlZChwLCBwdHIsIGxlbik7DQo+ID4gPiA+ID4g
PiArCXJldHVybiBsZW47DQo+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+
ID4gKy8qKg0KPiA+ID4gPiA+ID4gKyAqIHhkcl9zdHJlYW1fZGVjb2RlX29wYXF1ZV9pbmxpbmUg
LSBEZWNvZGUgdmFyaWFibGUNCj4gPiA+ID4gPiA+IGxlbmd0aA0KPiA+ID4gPiA+ID4gb3BhcXVl
DQo+ID4gPiA+ID4gPiB4ZHIgZGF0YQ0KPiA+ID4gPiA+ID4gKyAqIEB4ZHI6IHBvaW50ZXIgdG8g
eGRyX3N0cmVhbQ0KPiA+ID4gPiA+ID4gKyAqIEBwdHI6IGxvY2F0aW9uIHRvIHN0b3JlIHBvaW50
ZXIgdG8gb3BhcXVlIGRhdGENCj4gPiA+ID4gPiA+ICsgKg0KPiA+ID4gPiA+ID4gKyAqIE5vdGU6
IHRoZSBwb2ludGVyIHN0b3JlZCBpbiBAcHRyIGNhbm5vdCBiZSBhc3N1bWVkDQo+ID4gPiA+ID4g
PiB2YWxpZA0KPiA+ID4gPiA+ID4gYWZ0ZXINCj4gPiA+ID4gPiA+IHRoZSBYRFINCj4gPiA+ID4g
PiA+ICsgKiBidWZmZXIgaGFzIGJlZW4gZGVzdHJveWVkLCBvciBldmVuIGFmdGVyIGNhbGxpbmcN
Cj4gPiA+ID4gPiA+IHhkcl9pbmxpbmVfZGVjb2RlKCkNCj4gPiA+ID4gPiA+ICsgKiBvbiBAeGRy
LiBJdCBpcyB0aGVyZWZvcmUgZXhwZWN0ZWQgdGhhdCB0aGUgb2JqZWN0IGl0DQo+ID4gPiA+ID4g
PiBwb2ludHMNCj4gPiA+ID4gPiA+IHRvDQo+ID4gPiA+ID4gPiBzaG91bGQNCj4gPiA+ID4gPiA+
ICsgKiBiZSBwcm9jZXNzZWQgaW1tZWRpYXRlbHkuDQo+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4g
PiA+ICsgKiBSZXR1cm4gdmFsdWVzOg0KPiA+ID4gPiA+ID4gKyAqwqDCoMKgT24gc3VjY2Vzcywg
cmV0dXJucyBzaXplIG9mIG9iamVjdCBzdG9yZWQgaW4gKkBwdHINCj4gPiA+ID4gPiANCj4gPiA+
ID4gPiBUaGlzIHNlZW1zIHRvIGJlIHRoZSBvbmx5IGZ1bmN0aW9uIHdoZXJlIHRoZSBjYWxsZXIN
Cj4gPiA+ID4gPiBtaWdodCBub3QgYWxyZWFkeSBrbm93IHRoZSBsZW5ndGggb2YgdGhlIG9iamVj
dCwgYnV0DQo+ID4gPiA+ID4gbWlnaHQgYWN0dWFsbHkgY2FyZS4gU2luY2UgdGhlIG9iamVjdCBs
ZW5ndGggY2FuIGJlDQo+ID4gPiA+ID4gY29uc2lkZXJlZCBwYXJ0IG9mIHRoZSBvYmplY3QgaXRz
ZWxmLCBtYXliZSB0aGF0DQo+ID4gPiA+ID4gbGVuZ3RoIHNob3VsZCBiZSByZXR1cm5lZCB2aWEg
YW4gb3V0cHV0IHBhcmFtZXRlcg0KPiA+ID4gPiA+IHJhdGhlciB0aGFuIGFzIHRoZSBmdW5jdGlv
bidzIHJldHVybiB2YWx1ZS4NCj4gPiA+ID4gDQo+ID4gPiA+IEkgY29uc2lkZXJlZCBpdCwgYnV0
IHRoYXQgbWVhbnMgeW91IGhhdmUgdG8gY2hvb3NlIGFuIGV4YWN0DQo+ID4gPiA+IHN0b3JhZ2UN
Cj4gPiA+ID4gdHlwZSBhbmQgZ2NjIHdpbGwgY29tcGxhaW4gaWYgdGhlIHR5cGUgY2hlY2sgZmFp
bHMuDQo+ID4gPiA+IEluIG1vc3QgY2FzZXMsIHdlIGRvbid0IHJlYWxseSBjYXJlIGlmIHRoZSB1
MzIgdmFsdWUgZ2V0cw0KPiA+ID4gPiBzdG9yZWQgaW4NCj4gPiA+ID4gYW4NCj4gPiA+ID4gdW5z
aWduZWQgaW50LCBpbnQsIHVuc2lnbmVkIGxvbmcsIGxvbmcsIHNpemVfdCwgc3NpemVfdCBiZWNh
dXNlDQo+ID4gPiA+IHdlDQo+ID4gPiA+IGhhdmUNCj4gPiA+ID4gYSBnb29kIGlkZWEgb2Ygd2hh
dCB0byBleHBlY3QgZm9yIHRoZSBvYmplY3Qgc2l6ZS4NCj4gPiA+ID4gDQo+ID4gPiA+ID4gPiAr
ICrCoMKgwqAlLUVOT0JVRlMgb24gWERSIGJ1ZmZlciBvdmVyZmxvdw0KPiA+ID4gPiA+IA0KPiA+
ID4gPiA+IEVJTlZBTCBpcyBwcm9iYWJseSBiZXR0ZXI6IHRoZSBjYWxsZXIgZGlkbid0IHByb3Zp
ZGUNCj4gPiA+ID4gPiB0aGUgY29ycmVjdCBpbnB1dHMuIFRoYXQncyBhIG5pdCwgdGhvdWdoLg0K
PiA+ID4gPiANCj4gPiA+ID4gSXQncyBub3QgYSBjYWxsZXIgcHJvYmxlbS4gVGhlIEVOT0JVRlMg
ZXJyb3Igb24gZGVjb2RlDQo+ID4gPiA+IGluZGljYXRlcw0KPiA+ID4gPiB0aGF0DQo+ID4gPiA+
IHRoZSBSUEMgbWVzc2FnZSB3ZSdyZSB0cnlpbmcgdG8gZGVjb2RlIHdhcyBwcm9iYWJseSB0cnVu
Y2F0ZWQNCj4gPiA+ID4gb3INCj4gPiA+ID4gY29ycnVwdGVkLg0KPiA+ID4gDQo+ID4gPiBBaC4g
QWdyZWUgbm93LCBub3QgYSBjYWxsZXIgYnVnLg0KPiA+ID4gDQo+ID4gPiBJIHN0aWxsIHdvbmRl
ciBpZiB0aGUgbWVhbmluZyBvZiBFTk9CVUZTIGlzIGEgZ29vZCBlbm91Z2ggbWF0Y2gNCj4gPiA+
IHRvIHRoaXMgdXNlIGNhc2UuIEVJTlZBTCBpcyBhIHBlcm1hbmVudCBlcnJvciwgYnV0IEkgZG9u
J3QgdGhpbmsNCj4gPiA+IEVOT0JVRlMgaXMuDQo+ID4gPiANCj4gPiA+IEZyb20gaHR0cHM6Ly93
d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJjL21hbnVhbC9odG1sX25vZGUvRXJyb3ItQ29kDQo+ID4g
PiBlcy5oDQo+ID4gPiB0bWw6DQo+ID4gPiANCj4gPiA+ID4gTWFjcm86IGludCBFTk9CVUZTDQo+
ID4gPiA+IFRoZSBrZXJuZWzigJlzIGJ1ZmZlcnMgZm9yIEkvTyBvcGVyYXRpb25zIGFyZSBhbGwg
aW4gdXNlLiBJbiBHTlUsDQo+ID4gPiA+IHRoaXMNCj4gPiA+ID4gZXJyb3IgaXMgYWx3YXlzIHN5
bm9ueW1vdXMgd2l0aCBFTk9NRU07IHlvdSBtYXkgZ2V0IG9uZSBvciB0aGUNCj4gPiA+ID4gb3Ro
ZXINCj4gPiA+ID4gZnJvbSBuZXR3b3JrIG9wZXJhdGlvbnMuDQo+ID4gPiANCj4gPiA+IFRoZSBv
dGhlciBwbGFjZXMgSSd2ZSBsb29rZWQgYWxzbyBzdWdnZXN0IHRoaXMgZXJyb3IgY29kZSBtZWFu
cw0KPiA+ID4gYSB0ZW1wb3Jhcnkgb3V0IG9mIGJ1ZmZlcnMgY29uZGl0aW9uLCBhbmQgdGhlIGNh
bGxlciBzaG91bGQgdHJ5DQo+ID4gPiBhZ2FpbiBsYXRlci4gVGhlIGVycm9yIGlzIHVzZWQgdG8g
bWVhbiB0aGVyZSBhcmUgbm8gbW9yZSBidWZmZXJzDQo+ID4gPiAocGx1cmFsKSB0byB1c2UgZm9y
IGEgc2VuZCBvcGVyYXRpb24uIEFzIGl0IHNheXMsIGFraW4gdG8gRU5PTUVNLg0KPiA+ID4gVGhh
dCdzIHRoZSB3YXkgSSd2ZSB1c2VkIHRoaXMgZXJybm8gaW4gdGhlIHBhc3QuDQo+ID4gPiANCj4g
PiA+IEhlcmUgdGhlIGVycm9yIGlzIHVzZWQgdG8gbWVhbiAiYnVmZmVyIChzaW5ndWxhcikgd291
bGQgb3ZlcmZsb3ciDQo+ID4gPiBkdXJpbmcgYSByZWNlaXZlOyBwZXJtYW5lbnQgZXJyb3IsIG5v
IHJldHJ5IHBvc3NpYmxlLiBQb3NzaWJsZQ0KPiA+ID4gYWx0ZXJuYXRpdmVzIHRoYXQgbWlnaHQg
YmUgY2xvc2VyIGluIHB1cnBvc2U6IEVNU0dTSVpFLCBFQkFETVNHLA0KPiA+ID4gRVJFTU9URUlP
LCBvciBFMkJJRy4NCj4gPiANCj4gPiBIb3cgYWJvdXQgRU5PREFUQSwgdGhlbj8NCj4gDQo+IEVO
T0RBVEEgaXMgaW5kZWVkIGEgcGVybWFuZW50IGVycm9yLiBUbyBtZSwgRUJBRE1TRyBzdGlsbA0K
PiBmZWVscyBjbG9zZXIgdG8gYSBkZWNvZGUgZmFpbHVyZS4NCg0KRmFpciBlbm91Z2guDQoNCj4g
DQo+IE90aGVyIHN5c3RlbXMgaGF2ZSBFQkFEUlBDLCBidXQgTGludXggZG9lc24ndCBhcHBlYXIg
dG8uDQo+IA0KPiBPbiB0aGUgZW5jb2RlIHNpZGUsIEVJTlZBTCBvciB0aGUgdmVuZXJhYmxlIEVJ
TyBtYWtlcyBzZW5zZS4NCj4gQm90aCBzZWVtIHRvIGJlIHVzZWQgZm9yIGEgbG90IG9mIG90aGVy
IHB1cnBvc2VzIGluIHRoZSBSUEMNCj4gc3RhY2ssIHRob3VnaC4NCj4gDQo+IEl0IHdvdWxkIGJl
IGdyZWF0IHRvIGhhdmUgb25lIGRpc3RpbmN0IGVycm9yIGNvZGUgbWVhbmluZw0KPiAiZmFpbGVk
IHRvIGVuY29kZSBDYWxsIiBhbmQgb25lIG1lYW5pbmcgImZhaWxlZCB0byBkZWNvZGUNCj4gUmVw
bHkiLiBGb3IgaW5zdGFuY2UsIFRJLVJQQyBoYXMNCj4gDQo+IMKgMjEgZW51bSBjbG50X3N0YXQg
ew0KPiDCoDIywqDCoMKgwqDCoMKgwqDCoMKgUlBDX1NVQ0NFU1MgPSAwLMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgLyogY2FsbCBzdWNjZWVkZWQgKi8NCj4gwqAyM8KgwqDCoMKgwqDC
oMKgwqDCoC8qDQo+IMKgMjTCoMKgwqDCoMKgwqDCoMKgwqDCoCogbG9jYWwgZXJyb3JzDQo+IMKg
MjXCoMKgwqDCoMKgwqDCoMKgwqDCoCovDQo+IMKgMjbCoMKgwqDCoMKgwqDCoMKgwqBSUENfQ0FO
VEVOQ09ERUFSR1MgPSAxLMKgwqDCoMKgwqDCoMKgwqDCoC8qIGNhbid0IGVuY29kZSBhcmd1bWVu
dHMNCj4gKi8NCj4gwqAyN8KgwqDCoMKgwqDCoMKgwqDCoFJQQ19DQU5UREVDT0RFUkVTID0gMizC
oMKgwqDCoMKgwqDCoMKgwqDCoC8qIGNhbid0IGRlY29kZSByZXN1bHRzDQo+ICovDQo+IMKgMjjC
oMKgwqDCoMKgwqDCoMKgwqBSUENfQ0FOVFNFTkQgPSAzLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoC8qIGZhaWx1cmUgaW4gc2VuZGluZw0KPiBjYWxsICovDQo+IMKgMjnCoMKgwqDCoMKg
wqDCoMKgwqBSUENfQ0FOVFJFQ1YgPSA0LA0KPiANCj4gTWF5YmUgdGhhdCdzIG92ZXItZW5naW5l
ZXJpbmcgZm9yIHVzLCBidXQgdGhlcmUgY291bGQgYmUNCj4gc29tZSBpbnN0YW5jZXMgd2hlcmUg
aXQgbWlnaHQgaGVscCB0aGUgdXBwZXIgbGF5ZXIgdG8ga25vdw0KPiB0aGF0IHRoZSBSUEMgQ2Fs
bCB3YXMgbmV2ZXIgc2VudCAobGlrZSwgU0VRVUVOQ0UgPyApLg0KDQpJZiB3ZSdyZSBnb2luZyB0
byBnbyB3aXRoIHRoZSBTVFJFQU1TIHRoZW1lLCB0aGVuIHRoZXJlIGlzIGFsd2F5cw0KRU1TR1NJ
WkUgZm9yIHRoaXMgY2FzZS4NCg0KVGhhdCBtaWdodCBhbHNvIGJlIGFwcHJvcHJpYXRlIGluc3Rl
YWQgb2YgRTJCSUcgd2hlbiBkZWNvZGluZyBpbnRvIGENCmZpeGVkIHNpemUgYnVmZmVyLg0KDQo+
IA0KPiA+ID4gSSBhc3N1bWUgeW91IHdhbnQgdG8gcmV0dXJuIGVycm5vcyBmcm9tIHRoZXNlIGhl
bHBlcnMgYmVjYXVzZQ0KPiA+ID4gZXZlbnR1YWxseSBzb21lIG9mIHRoZW0gbWlnaHQgZW5jb3Vu
dGVyIG90aGVyIHR5cGVzIG9mIGVycm9ycz8NCj4gPiA+IElmIG5vdCwgdGhlbiBzdGlja2luZyB3
aXRoIC0xIG9uIGVycm9yLCAwIG9yIHBvc2l0aXZlIHZhbHVlIG9uDQo+ID4gPiBzdWNjZXNzIG1p
Z2h0IGJlIGVudGlyZWx5IGFkZXF1YXRlLg0KPiA+IA0KPiA+IFNlZSB0aGUgInY0IiBwYXRjaHNl
dCB3aGljaCBnb2VzIGEgbGl0dGxlIGZ1cnRoZXIgaW4gcmVwbGFjaW5nIHRoZQ0KPiA+IG9iamVj
dCBzaXplIGNoZWNrcy4gRm9yIG9uZSB0aGluZywgdGhhdCBhbGxvd3MgdXMgdG8gYmUgbW9yZQ0K
PiA+IGZvcmNlZnVsDQo+ID4gYWJvdXQgZW5zdXJpbmcgdGhhdCB3ZSBfYWx3YXlzXyBjaGVjayB0
aGUgc2l6ZSBvZiB0aGUgb2JqZWN0DQo+ID4gYWdhaW5zdA0KPiA+IGV4cGVjdGF0aW9ucy4NCj4g
DQo+IEdsYW5jZWQgYXQgdGhhdC4gWWVzLCB0aGF0J3MgbW9yZSBjbGVhciwgYW5kIGxlbmd0aCBj
aGVja2luZw0KPiBpbiBhZGRpdGlvbiB0byBidWZmZXIgb3ZlcnJ1biBjaGVja2luZyBpcyBnb29k
Lg0KPiANCj4gV2h5IHdvdWxkIHRoZSB1cHBlciBsYXllciB3YW50IHRvIGRpc3Rpbmd1aXNoIHRo
b3NlIHR3byBjYXNlcy4NCj4gQXJlIHRoZXJlIHNvbWUgY2FzZXMgd2hlcmUgdGhlIFVMIGNhbiB0
YWtlIHNvbWUgcmVjb3Vyc2UsIG9yDQo+IGlzIGEgZGVjb2RpbmcgZmFpbHVyZSBhbHdheXMgcGVy
bWFuZW50Pw0KDQpXZSBkZWZpbml0ZWx5IHdhbnQgdG8gcmVwb3J0IGluc3RhbmNlcyBvZiBzZXJ2
ZXJzIHNlbmRpbmcgdXMgb2JqZWN0cw0KdGhhdCBhcmUgdG9vIGJpZy4gVGhhdCdzIGFuIGludGVy
b3BlcmFiaWxpdHkgaXNzdWUgdGhhdCBwcm9iYWJseSBuZWVkcw0KdG8gYmUgcmVzb2x2ZWQgdGhy
b3VnaCBwcm90b2NvbC1sYXd5ZXJpbmcgb24gdGhlIElFVEYgbWFpbGluZyBsaXN0Lg0KDQpUcnVu
Y2F0ZWQgbWVzc2FnZXMgYXJlIGFsbW9zdCBhbHdheXMgYSBjbGllbnQgYnVnLg0KDQo+IA0KPiA+
ID4gPiA+IEhvd2V2ZXIsIGFzIGEgbWF0dGVyIG9mIGRlZmVuc2l2ZSBjb2RpbmcsIHRoaXMgZXJy
bm8NCj4gPiA+ID4gPiBjb3VsZCBsZWFrIHVwIHRoZSBzdGFjayBpZiBkZXZlbG9wZXJzIGFyZSBu
b3QgY2FyZWZ1bC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBBIGJvb2xlYW4gcmV0dXJuIHZhbHVl
IGNvdWxkIGJlIGVudGlyZWx5IGFkZXF1YXRlIGZvcg0KPiA+ID4gPiA+IHRoZXNlIGRlY29kZXJz
Pw0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gKyAqLw0KPiA+ID4gPiA+ID4g
K3N0YXRpYyBpbmxpbmUgc3NpemVfdA0KPiA+ID4gPiA+ID4gK3hkcl9zdHJlYW1fZGVjb2RlX29w
YXF1ZV9pbmxpbmUoc3RydWN0IHhkcl9zdHJlYW0gKnhkciwNCj4gPiA+ID4gPiA+IHZvaWQNCj4g
PiA+ID4gPiA+ICoqcHRyKQ0KPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ICsJX19iZTMyICpw
Ow0KPiA+ID4gPiA+ID4gKwlfX3UzMiBsZW47DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiAr
CWlmICh1bmxpa2VseSh4ZHJfc3RyZWFtX2RlY29kZV91MzIoeGRyLCAmbGVuKSA8DQo+ID4gPiA+
ID4gPiAwKSkNCj4gPiA+ID4gPiA+ICsJCXJldHVybiAtRU5PQlVGUzsNCj4gPiA+ID4gPiA+ICsJ
aWYgKGxlbiAhPSAwKSB7DQo+ID4gPiA+ID4gPiArCQlwID0geGRyX2lubGluZV9kZWNvZGUoeGRy
LCBsZW4pOw0KPiA+ID4gPiA+ID4gKwkJaWYgKHVubGlrZWx5KCFwKSkNCj4gPiA+ID4gPiA+ICsJ
CQlyZXR1cm4gLUVOT0JVRlM7DQo+ID4gPiA+ID4gPiArCQkqcHRyID0gcDsNCj4gPiA+ID4gPiA+
ICsJfSBlbHNlDQo+ID4gPiA+ID4gPiArCQkqcHRyID0gTlVMTDsNCj4gPiA+ID4gPiA+ICsJcmV0
dXJuIGxlbjsNCj4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiAjZW5kaWYgLyogX19LRVJORUxf
XyAqLw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAjZW5kaWYgLyogX1NVTlJQQ19YRFJfSF8g
Ki8NCj4gPiA+ID4gPiA+IC0twqANCj4gPiA+ID4gPiA+IDIuOS4zDQo+ID4gPiA+ID4gPiANCj4g
PiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDog
c2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUNCj4gPiA+ID4gPiA+IGxpbnV4LQ0KPiA+ID4gPiA+
ID4gbmZzIiBpbg0KPiA+ID4gPiA+ID4gdGhlIGJvZHkgb2YgYSBtZXNzYWdlIHRvIG1ham9yZG9t
b0B2Z2VyLmtlcm5lbC5vcmcNCj4gPiA+ID4gPiA+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXTCoMKg
aHR0cDovL3ZnZXIua2VybmVsLm9yZy9tYWpvcmRvbW8taW4NCj4gPiA+ID4gPiA+IGZvLmgNCj4g
PiA+ID4gPiA+IHRtbA0KPiA+ID4gPiA+IA0KPiA+ID4gPiA+IC0tDQo+ID4gPiA+ID4gQ2h1Y2sg
TGV2ZXINCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gPiANCj4gPiA+ID4gDQo+ID4g
PiA+IC0twqANCj4gPiA+ID4gVHJvbmQgTXlrbGVidXN0DQo+ID4gPiA+IExpbnV4IE5GUyBjbGll
bnQgbWFpbnRhaW5lciwgUHJpbWFyeURhdGENCj4gPiA+ID4gdHJvbmQubXlrbGVidXN0QHByaW1h
cnlkYXRhLmNvbQ0KPiA+ID4gPiBO77+977+977+9cu+/vXnvv73vv73vv71i77+9WO+/vcendu+/
vV7vv70p3rp7Lm7vv70r77+9e++/vSLvv73vv71ebu+/vXLvv73vv71677+9Gu+/ve+/vWjvv73v
v73vv70m77+9Hu+/vUfvv73vv71o77+9Ayjvv73pmo7vv73domoNCj4gPiA+ID4gIu+/vRrvv70N
Cj4gPiA+ID4gG23vv73vv73vv73vv71677+93pbvv73vv71m77+9aO+/vX7vv71tDQo+ID4gPiAN
Cj4gPiA+IC0tDQo+ID4gPiBDaHVjayBMZXZlcg0KPiA+ID4gDQo+ID4gPiANCj4gPiA+IA0KPiA+
IA0KPiA+IC0twqANCj4gPiBUcm9uZCBNeWtsZWJ1c3QNCj4gPiBMaW51eCBORlMgY2xpZW50IG1h
aW50YWluZXIsIFByaW1hcnlEYXRhDQo+ID4gdHJvbmQubXlrbGVidXN0QHByaW1hcnlkYXRhLmNv
bQ0KPiANCj4gLS0NCj4gQ2h1Y2sgTGV2ZXINCj4gDQo+IA0KPiANCi0tIA0KVHJvbmQgTXlrbGVi
dXN0DQpMaW51eCBORlMgY2xpZW50IG1haW50YWluZXIsIFByaW1hcnlEYXRhDQp0cm9uZC5teWts
ZWJ1c3RAcHJpbWFyeWRhdGEuY29tDQo=
prev parent reply other threads:[~2017-02-19 20:33 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-18 19:12 [PATCH v3 0/4] XDR cleanups for NFSv4 Trond Myklebust
2017-02-18 19:12 ` [PATCH v3 1/4] SUNRPC: Add generic helpers for xdr_stream encode/decode Trond Myklebust
2017-02-18 19:12 ` [PATCH v3 2/4] NFSv4: Replace ad-hoc xdr encode/decode helpers with xdr_stream_* generics Trond Myklebust
2017-02-18 19:12 ` [PATCH v3 3/4] NFSv4: Fix the underestimation of delegation XDR space reservation Trond Myklebust
2017-02-18 19:12 ` [PATCH v3 4/4] NFSv4: Remove bogus "struct nfs_client" argument from decode_ace() Trond Myklebust
2017-02-18 22:21 ` [PATCH v3 1/4] SUNRPC: Add generic helpers for xdr_stream encode/decode Chuck Lever
2017-02-19 5:36 ` Trond Myklebust
2017-02-19 19:07 ` Chuck Lever
2017-02-19 19:28 ` Trond Myklebust
2017-02-19 20:06 ` Chuck Lever
2017-02-19 20:33 ` Trond Myklebust [this message]
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=1487536411.42276.5.camel@primarydata.com \
--to=trondmy@primarydata.com \
--cc=anna.schumaker@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 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).