Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx2.netapp.com ([216.240.18.37]:42550 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751334Ab2F1Nk4 (ORCPT ); Thu, 28 Jun 2012 09:40:56 -0400 From: "Myklebust, Trond" To: Jeff Layton CC: Harshula , "linux-nfs@vger.kernel.org" , "mgorman@suse.de" Subject: Re: rpciod process is blocked in nfs_release_page waiting for nfs_commit_inode to complete Date: Thu, 28 Jun 2012 13:40:37 +0000 Message-ID: <1340890837.5293.11.camel@lade.trondhjem.org> References: <1339764850.30233.11.camel@serendib> <20120615092103.15cc2b11@corrin.poochiereds.net> <1339795503.16363.9.camel@lade.trondhjem.org> <20120627115447.0fdf8c6e@corrin.poochiereds.net> <1340822635.2398.7.camel@lade.trondhjem.org> <20120627152814.4774048b@tlielax.poochiereds.net> <1340826996.2398.15.camel@lade.trondhjem.org> <20120627161913.05229538@tlielax.poochiereds.net> <1340830004.2398.26.camel@lade.trondhjem.org> <20120628091905.11825707@corrin.poochiereds.net> In-Reply-To: <20120628091905.11825707@corrin.poochiereds.net> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-nfs-owner@vger.kernel.org List-ID: T24gVGh1LCAyMDEyLTA2LTI4IGF0IDA5OjE5IC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4g T24gV2VkLCAyNyBKdW4gMjAxMiAyMDo0Njo0OSArMDAwMA0KPiAiTXlrbGVidXN0LCBUcm9uZCIg PFRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tPiB3cm90ZToNCj4gDQo+ID4gT24gV2VkLCAyMDEy LTA2LTI3IGF0IDE2OjE5IC0wNDAwLCBKZWZmIExheXRvbiB3cm90ZToNCj4gPiA+IE9uIFdlZCwg MjcgSnVuIDIwMTIgMTk6NTY6MzggKzAwMDANCj4gPiA+ICJNeWtsZWJ1c3QsIFRyb25kIiA8VHJv bmQuTXlrbGVidXN0QG5ldGFwcC5jb20+IHdyb3RlOg0KPiA+ID4gDQo+ID4gPiA+IE9uIFdlZCwg MjAxMi0wNi0yNyBhdCAxNToyOCAtMDQwMCwgSmVmZiBMYXl0b24gd3JvdGU6DQo+ID4gPiA+ID4g T24gV2VkLCAyNyBKdW4gMjAxMiAxODo0Mzo1NiArMDAwMA0KPiA+ID4gPiA+ICJNeWtsZWJ1c3Qs IFRyb25kIiA8VHJvbmQuTXlrbGVidXN0QG5ldGFwcC5jb20+IHdyb3RlOg0KPiA+ID4gPiA+IElm IHRoZXJlIHJlYWxseSBpcyBubyBhbHRlcm5hdGl2ZSB0byBmcmVlaW5nIHRoZSBzb2NrZXQsIHRo ZW4gdGhlIG9ubHkNCj4gPiA+ID4gPiByZWFsIGZpeCBJIGNhbiBzZWUgaXMgdG8gc2V0IFBGX01F TUFMTE9DIHdoZW4gd2UgZ28gdG8gY3JlYXRlIGl0IGFuZA0KPiA+ID4gPiA+IHRoZW4gcmVzZXQg aXQgYWZ0ZXJ3YXJkLiBUaGF0J3MgYSBwcmV0dHkgdWdseSBmaXggdGhvdWdoLi4uDQo+ID4gPiA+ IA0KPiA+ID4gPiBJIGNhbiB0aGluayBvZiAyIHBvc3NpYmxlIGFsdGVybmF0aXZlczoNCj4gPiA+ ID4gDQo+ID4gPiA+ICAgICAgMS4gVXNlIHRoZSBQRl9GU1RSQU5TIGZsYWcgdG8gdGVsbCBuZnNf cmVsZWFzZV9wYWdlIHRoYXQgdGhpcyBpcyBhDQo+ID4gPiA+ICAgICAgICAgZGlyZWN0IHJlY2xh aW0gZnJvbSBycGNpb2QuDQo+ID4gPiANCj4gPiA+IEhtbS4uLnRoYXQncyBhIGJpdCBpbmRpc2Ny aW1pbmF0ZSwgaXNuJ3QgaXQ/IExvb2tzIGxpa2Ugb25seSBYRlMgdXNlcw0KPiA+ID4gdGhhdCBm bGFnIG5vdy4uLg0KPiA+ID4gDQo+ID4gPiBTdXBwb3NlIHdlJ3JlIGluIHNvbWUgWEZTIGFsbG9j YXRpb24gYW5kIHRoZW4gd2FudCB0byBjb21taXQgYSBORlMNCj4gPiA+IHBhZ2UgdG8gc2F0aXNm eSBpdC4gVGhlcmUncyBubyByZWFsIHJlYXNvbiB3ZSBjb3VsZG4ndCBidXQgdGhhdCB3b3VsZA0K PiA+ID4gcHJldmVudCBpdC4uLg0KPiA+IA0KPiA+IFNvIGRvIGFsbCB0aGUgR0ZQX05PRlMgYWxs b2NhdGlvbnMuIEhvdyBpcyB0aGlzIGFueSBkaWZmZXJlbnQ/DQo+ID4gDQo+IA0KPiBHb29kIHBv aW50LiBOb3cgdGhhdCBJJ3ZlIGxvb2tlZCBjbG9zZXIsIEkgdGhpbmsgdGhpcyBpcyBwcm9iYWJs eSB0aGUNCj4gYmVzdCBhcHByb2FjaC4gUHJvcG9zZWQgcGF0Y2ggYmVsb3cuIEl0IGJ1aWxkcyBi dXQgaXMgb3RoZXJ3aXNlDQo+IHVudGVzdGVkIHNvIGZhci4uLg0KPiANCj4gPiA+ID4gICAgICAy LiBBZGQgYSAnY29uZ2VzdGVkJyBmbGFnIHRvIHRoZSBycGMgY2xpZW50IHRoYXQgY291bGQgdGVs bCByZWNsYWltDQo+ID4gPiA+ICAgICAgICAgdHlwZSBvcGVyYXRpb25zIHRvIGdpdmUgdXAgaWYg YSBzb2NrZXQgYWxsb2NhdGlvbiBpcyBpbg0KPiA+ID4gPiAgICAgICAgIHByb2dyZXNzLg0KPiA+ ID4gPiANCj4gPiA+IA0KPiA+ID4gVGhhdCdzIG5vdCBhIGJhZCBpZGVhLiBUaGF0IGhhcyB0aGUg YmVuZWZpdCBvZiBvbmx5IHNraXBwaW5nIHJlY2xhaW0NCj4gPiA+IHdoZW4gaXQncyBkaXJlY3Rs eSBhc3NvY2lhdGVkIHdpdGggdGhlIHNvY2tldCBiZWluZyByZWNvbm5lY3RlZC4gU2VlbXMNCj4g PiA+IGxpa2UgdGhhdCB3b3VsZCBoYXZlIHRvIGhhbmcgb2ZmIG9mIHRoZSBycGNfeHBydCwgYnV0 IHdlIGNvdWxkIGRvDQo+ID4gPiBzb21ldGhpbmcgYWxvbmcgdGhvc2UgbGluZXMuIFByZXN1bWFi bHkgTWVsJ3Mgc3dhcC1vdmVyLW5mcyBwYXRjaGVzDQo+ID4gPiBjb3VsZCBiZSBjb252ZXJ0ZWQg dG8gZG8gc29tZXRoaW5nIHNpbWlsYXIgaW5zdGVhZCBvZiB1c2luZyBQRl9NRU1BTExPQw0KPiA+ ID4gdGhlcmUgdG9vLg0KPiA+IA0KPiANCj4gVGhlIHByb2JsZW0gd2l0aCB0aGUgYWJvdmUgc2No ZW1lIGlzIHRoYXQgaXQgd291bGQgYmUgcmFjeS4gSXQgd291bGQNCj4gZWFzaWx5IGJlIHBvc3Np YmxlIGZvciB0aGUgY29uZ2VzdGVkIGZsYWcgdG8gZmxpcCBqdXN0IGFmdGVyIHlvdQ0KPiBjaGVj a2VkIGl0IGJ1dCBiZWZvcmUgaXNzdWluZyB0aGUgY29tbWl0Lg0KPiANCj4gTWF5YmUgd2UgY291 bGQgcHVzaCBoYW5kbGluZyBmb3IgdGhhdCBkb3duIGludG8gdGhlIGNvbW1pdCBjYWxsIGl0c2Vs Zg0KPiAtLSBhbGxvdyBpdCB0byBnaXZlIHVwIGlmICJjb25nZXN0ZWQiIGdvZXMgdHJ1ZSB3aGls ZSB3ZSdyZSBibG9ja2VkIGFuZA0KPiB3YWl0aW5nIGZvciB0aGUgdGhlIHJlcGx5LCBidXQgdGhh dCBzb3VuZHMgY29tcGxpY2F0ZWQuLi4NCj4gDQo+IEFueXdheSwgaGVyZSdzIGEgcHJvcG9zZWQg cGF0Y2ggZm9yIHRoZSBQRl9GU1RSQU5TIHNjaGVtZS4gSXQgYnVpbGRzDQo+IGJ1dCBJIGhhdmVu J3Qgb3RoZXJ3aXNlIHRlc3RlZCBpdCB5ZXQuIEZvciBub3csIGl0IGp1c3QgY292ZXJzIHRoZQ0K PiBzb2NrZXQgYWxsb2NhdGlvbiBhbmQgLT5yZWxlYXNlcGFnZS4gRXZlbnR1YWxseSBJIGd1ZXNz IHdlJ2xsIHByb2JhYmx5DQo+IHdhbnQgdG8gc2V0IGFuZCBjaGVjayBmb3IgUEZfRlNUUkFOUyBp biBvdGhlciBwbGFjZXM6DQoNCklzIHRoZXJlIGFueSByZWFzb24gd2h5IHdlIG1pZ2h0IG5vdCB3 YW50IGFsbCBycGNpb2Qgd29yayB0byBydW4gdW5kZXINClBGX0ZTVFJBTlM/IElPVzogY291bGRu J3Qgd2UganVzdCBzZXQvY2xlYXIgaXQgdW5jb25kaXRpb25hbGx5IHdoZW4NCmVudGVyaW5nL2V4 aXRpbmcgcnBjX2FzeW5jX3NjaGVkdWxlKCksIGFuZCB4c18qX3NldHVwX3NvY2tldCgpPw0KDQpX ZSBzaG91bGRuJ3QgbmVlZCB0byB3b3JyeSBhYm91dCB0aGUgcmVtYWluaW5nIHJwY2lvZCB3b3Jr IHN0cnVjdHVyZXMgaW4NCnJwY190aW1lb3V0X3VwY2FsbF9xdWV1ZSBhbmQgeHBydF9hdXRvY2xv c2UsIHNpbmNlIHRob3NlIGRvbid0IGV2ZXIgbmVlZA0KdG8gZG8gYW55IGFsbG9jYXRpb25zLg0K DQo+IC0tLS0tLS0tLS0tLS0tLS0tW3NuaXBdLS0tLS0tLS0tLS0tLS0tLS0tDQo+IA0KPiBbUkZD IFBBVENIXSBuZnM6IGRvIG5vbi1ibG9ja2luZyBjb21taXQgaW4gcmVsZWFzZXBhZ2UgaWYgd2Un cmUgYXR0ZW1wdGluZyB0byByZWNvbm5lY3QgdGhlIHNvY2tldA0KPiANCj4gV2UndmUgaGFkIHNv bWUgcmVwb3J0cyBvZiBhIGRlYWRsb2NrIHdoZXJlIHJwY2lvZCBlbmRzIHVwIHdpdGggYSBzdGFj aw0KPiB0cmFjZSBsaWtlIHRoaXM6DQo+IA0KPiAgICAgUElEOiAyNTA3ICAgVEFTSzogZmZmZjg4 MTAzNjkxYWI0MCAgQ1BVOiAxNCAgQ09NTUFORDogInJwY2lvZC8xNCINCj4gICAgICAjMCBbZmZm Zjg4MTAzNDNiZjJmMF0gc2NoZWR1bGUgYXQgZmZmZmZmZmY4MTRkYWJkOQ0KPiAgICAgICMxIFtm ZmZmODgxMDM0M2JmM2I4XSBuZnNfd2FpdF9iaXRfa2lsbGFibGUgYXQgZmZmZmZmZmZhMDM4ZmMw NCBbbmZzXQ0KPiAgICAgICMyIFtmZmZmODgxMDM0M2JmM2M4XSBfX3dhaXRfb25fYml0IGF0IGZm ZmZmZmZmODE0ZGJjMmYNCj4gICAgICAjMyBbZmZmZjg4MTAzNDNiZjQxOF0gb3V0X29mX2xpbmVf d2FpdF9vbl9iaXQgYXQgZmZmZmZmZmY4MTRkYmNkOA0KPiAgICAgICM0IFtmZmZmODgxMDM0M2Jm NDg4XSBuZnNfY29tbWl0X2lub2RlIGF0IGZmZmZmZmZmYTAzOWUwYzEgW25mc10NCj4gICAgICAj NSBbZmZmZjg4MTAzNDNiZjRmOF0gbmZzX3JlbGVhc2VfcGFnZSBhdCBmZmZmZmZmZmEwMzhiZWY2 IFtuZnNdDQo+ICAgICAgIzYgW2ZmZmY4ODEwMzQzYmY1MjhdIHRyeV90b19yZWxlYXNlX3BhZ2Ug YXQgZmZmZmZmZmY4MTEwYzY3MA0KPiAgICAgICM3IFtmZmZmODgxMDM0M2JmNTM4XSBzaHJpbmtf cGFnZV9saXN0LmNsb25lLjAgYXQgZmZmZmZmZmY4MTEyNjI3MQ0KPiAgICAgICM4IFtmZmZmODgx MDM0M2JmNjY4XSBzaHJpbmtfaW5hY3RpdmVfbGlzdCBhdCBmZmZmZmZmZjgxMTI2NjM4DQo+ICAg ICAgIzkgW2ZmZmY4ODEwMzQzYmY4MThdIHNocmlua196b25lIGF0IGZmZmZmZmZmODExMjc4OGYN Cj4gICAgICMxMCBbZmZmZjg4MTAzNDNiZjhjOF0gZG9fdHJ5X3RvX2ZyZWVfcGFnZXMgYXQgZmZm ZmZmZmY4MTEyN2IxZQ0KPiAgICAgIzExIFtmZmZmODgxMDM0M2JmOTU4XSB0cnlfdG9fZnJlZV9w YWdlcyBhdCBmZmZmZmZmZjgxMTI4MTJmDQo+ICAgICAjMTIgW2ZmZmY4ODEwMzQzYmZhMDhdIF9f YWxsb2NfcGFnZXNfbm9kZW1hc2sgYXQgZmZmZmZmZmY4MTExZmRhZA0KPiAgICAgIzEzIFtmZmZm ODgxMDM0M2JmYjI4XSBrbWVtX2dldHBhZ2VzIGF0IGZmZmZmZmZmODExNTk5NDINCj4gICAgICMx NCBbZmZmZjg4MTAzNDNiZmI1OF0gZmFsbGJhY2tfYWxsb2MgYXQgZmZmZmZmZmY4MTE1YTU1YQ0K PiAgICAgIzE1IFtmZmZmODgxMDM0M2JmYmQ4XSBfX19fY2FjaGVfYWxsb2Nfbm9kZSBhdCBmZmZm ZmZmZjgxMTVhMmQ5DQo+ICAgICAjMTYgW2ZmZmY4ODEwMzQzYmZjMzhdIGttZW1fY2FjaGVfYWxs b2MgYXQgZmZmZmZmZmY4MTE1YjA5Yg0KPiAgICAgIzE3IFtmZmZmODgxMDM0M2JmYzc4XSBza19w cm90X2FsbG9jIGF0IGZmZmZmZmZmODE0MTE4MDgNCj4gICAgICMxOCBbZmZmZjg4MTAzNDNiZmNi OF0gc2tfYWxsb2MgYXQgZmZmZmZmZmY4MTQxMTk3Yw0KPiAgICAgIzE5IFtmZmZmODgxMDM0M2Jm Y2U4XSBpbmV0X2NyZWF0ZSBhdCBmZmZmZmZmZjgxNDgzYmE2DQo+ICAgICAjMjAgW2ZmZmY4ODEw MzQzYmZkMzhdIF9fc29ja19jcmVhdGUgYXQgZmZmZmZmZmY4MTQwYjRhNw0KPiAgICAgIzIxIFtm ZmZmODgxMDM0M2JmZDk4XSB4c19jcmVhdGVfc29jayBhdCBmZmZmZmZmZmEwMWY2NDliIFtzdW5y cGNdDQo+ICAgICAjMjIgW2ZmZmY4ODEwMzQzYmZkZDhdIHhzX3RjcF9zZXR1cF9zb2NrZXQgYXQg ZmZmZmZmZmZhMDFmNjk2NSBbc3VucnBjXQ0KPiAgICAgIzIzIFtmZmZmODgxMDM0M2JmZTM4XSB3 b3JrZXJfdGhyZWFkIGF0IGZmZmZmZmZmODEwODg3ZDANCj4gICAgICMyNCBbZmZmZjg4MTAzNDNi ZmVlOF0ga3RocmVhZCBhdCBmZmZmZmZmZjgxMDhkZDk2DQo+ICAgICAjMjUgW2ZmZmY4ODEwMzQz YmZmNDhdIGtlcm5lbF90aHJlYWQgYXQgZmZmZmZmZmY4MTAwYzFjYQ0KPiANCj4gVGhlIHByb2Js ZW0gaXMgcHJldHR5IGNsZWFyLiBycGNpb2QgaXMgdHJ5aW5nIHRvIGFsbG9jYXRlIG1lbW9yeSBm b3IgYSBuZXcNCj4gc29ja2V0IHRvIHRhbGsgdG8gdGhlIHNlcnZlci4gVGhlIFZNIGVuZHMgdXAg Y2FsbGluZyAtPnJlbGVhc2VwYWdlIHRvIGdldA0KPiBtb3JlIG1lbW9yeSwgYW5kIGl0IHRyaWVz IHRvIGRvIGEgYmxvY2tpbmcgY29tbWl0LiBUaGF0IGNvbW1pdCBjYW4ndA0KPiBzdWNjZWVkIGhv d2V2ZXIgd2l0aG91dCBhIGNvbm5lY3RlZCBzb2NrZXQsIHNvIHdlIGRlYWRsb2NrLg0KPiANCj4g Rml4IHRoaXMgYnkgc2V0dGluZyBQRl9GU1RSQU5TIG9uIHRoZSB3b3JrcXVldWUgdGFzayBwcmlv ciB0byBkb2luZyB0aGUNCj4gc29ja2V0IGFsbG9jYXRpb24sIGFuZCBoYXZpbmcgbmZzX3JlbGVh c2VfcGFnZSBjaGVjayBmb3IgdGhhdCBmbGFnIHdoZW4NCj4gZGVjaWRpbmcgd2hldGhlciB0byBk byBhIGJsb2NraW5nIGNvbW1pdCBjYWxsLg0KPiANCj4gQWxzbywgY2MnaW5nIE1lbCBzaW5jZSBJ IGJvcnJvd2VkIGhpcyB0c2tfcmVzdG9yZV9mbGFncyBoZWxwZXIgaGVyZSwgYW5kDQo+IHRoaXMg cGF0Y2ggbWF5IGNhdXNlIG1lcmdlIGNvbmZsaWN0cyB3aXRoIHNvbWUgb2YgaGlzIFN3YXAtb3Zl ci1ORlMNCj4gcGF0Y2hlcy4NCj4gDQo+IENjOiBNZWwgR29ybWFuIDxtZ29ybWFuQHN1c2UuZGU+ DQo+IFNpZ25lZC1vZmYtYnk6IEplZmYgTGF5dG9uIDxqbGF5dG9uQHJlZGhhdC5jb20+DQo+IC0t LQ0KPiAgZnMvbmZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICB8ICAgIDggKysrKysrLS0NCj4g IGluY2x1ZGUvbGludXgvc2NoZWQuaCAgICAgICAgICAgfCAgICA3ICsrKysrKysNCj4gIG5ldC9z dW5ycGMveHBydHJkbWEvdHJhbnNwb3J0LmMgfCAgICA0ICsrKy0NCj4gIG5ldC9zdW5ycGMveHBy dHNvY2suYyAgICAgICAgICAgfCAgIDEzICsrKysrKysrKysrKysNCj4gIDQgZmlsZXMgY2hhbmdl ZCwgMjkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9m cy9uZnMvZmlsZS5jIGIvZnMvbmZzL2ZpbGUuYw0KPiBpbmRleCBhNjcwOGU2Yi4uODBjYzYyMSAx MDA2NDQNCj4gLS0tIGEvZnMvbmZzL2ZpbGUuYw0KPiArKysgYi9mcy9uZnMvZmlsZS5jDQo+IEBA IC00NjMsOCArNDYzLDEyIEBAIHN0YXRpYyBpbnQgbmZzX3JlbGVhc2VfcGFnZShzdHJ1Y3QgcGFn ZSAqcGFnZSwgZ2ZwX3QgZ2ZwKQ0KPiAgCWlmIChtYXBwaW5nICYmIChnZnAgJiBHRlBfS0VSTkVM KSA9PSBHRlBfS0VSTkVMKSB7DQo+ICAJCWludCBob3cgPSBGTFVTSF9TWU5DOw0KPiAgDQo+IC0J CS8qIERvbid0IGxldCBrc3dhcGQgZGVhZGxvY2sgd2FpdGluZyBmb3IgT09NIFJQQyBjYWxscyAq Lw0KPiAtCQlpZiAoY3VycmVudF9pc19rc3dhcGQoKSkNCj4gKwkJLyoNCj4gKwkJICogRG9uJ3Qg bGV0IGtzd2FwZCBkZWFkbG9jayB3YWl0aW5nIGZvciBPT00gUlBDIGNhbGxzLCBhbmQNCj4gKwkJ ICogZG9uJ3QgcmVjdXJzZSBiYWNrIGludG8gdGhlIGZzIGlmIHdlIGtub3cgdGhhdCB3ZSdyZSB0 cnlpbmcNCj4gKwkJICogdG8gcmVjbGFpbSBtZW1vcnkgZm9yIGFuIGZzLXJlbGF0ZWQgYWxsb2Nh dGlvbi4NCj4gKwkJICovDQo+ICsJCWlmIChjdXJyZW50X2lzX2tzd2FwZCgpIHx8IGN1cnJlbnQt PmZsYWdzICYgUEZfRlNUUkFOUykNCj4gIAkJCWhvdyA9IDA7DQo+ICAJCW5mc19jb21taXRfaW5v ZGUobWFwcGluZy0+aG9zdCwgaG93KTsNCj4gIAl9DQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xp bnV4L3NjaGVkLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkLmgNCj4gaW5kZXggNDA1OWMwZi4uZDcx YjUyMyAxMDA2NDQNCj4gLS0tIGEvaW5jbHVkZS9saW51eC9zY2hlZC5oDQo+ICsrKyBiL2luY2x1 ZGUvbGludXgvc2NoZWQuaA0KPiBAQCAtMTg4OSw2ICsxODg5LDEzIEBAIHN0YXRpYyBpbmxpbmUg dm9pZCByY3Vfc3dpdGNoX2Zyb20oc3RydWN0IHRhc2tfc3RydWN0ICpwcmV2KQ0KPiAgDQo+ICAj ZW5kaWYNCj4gIA0KPiArc3RhdGljIGlubGluZSB2b2lkIHRza19yZXN0b3JlX2ZsYWdzKHN0cnVj dCB0YXNrX3N0cnVjdCAqcCwNCj4gKwkJCXVuc2lnbmVkIGxvbmcgcGZsYWdzLCB1bnNpZ25lZCBs b25nIG1hc2spDQo+ICt7DQo+ICsJcC0+ZmxhZ3MgJj0gfm1hc2s7DQo+ICsJcC0+ZmxhZ3MgfD0g cGZsYWdzICYgbWFzazsNCj4gK30NCj4gKw0KPiAgI2lmZGVmIENPTkZJR19TTVANCj4gIGV4dGVy biB2b2lkIGRvX3NldF9jcHVzX2FsbG93ZWQoc3RydWN0IHRhc2tfc3RydWN0ICpwLA0KPiAgCQkJ ICAgICAgIGNvbnN0IHN0cnVjdCBjcHVtYXNrICpuZXdfbWFzayk7DQo+IGRpZmYgLS1naXQgYS9u ZXQvc3VucnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jIGIvbmV0L3N1bnJwYy94cHJ0cmRtYS90cmFu c3BvcnQuYw0KPiBpbmRleCBiNDQ2ZTEwLi43YjBmNzRiIDEwMDY0NA0KPiAtLS0gYS9uZXQvc3Vu cnBjL3hwcnRyZG1hL3RyYW5zcG9ydC5jDQo+ICsrKyBiL25ldC9zdW5ycGMveHBydHJkbWEvdHJh bnNwb3J0LmMNCj4gQEAgLTE5Nyw5ICsxOTcsMTEgQEAgeHBydF9yZG1hX2Nvbm5lY3Rfd29ya2Vy KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gIAlzdHJ1Y3QgcnBjcmRtYV94cHJ0ICpyX3hw cnQgPQ0KPiAgCQljb250YWluZXJfb2Yod29yaywgc3RydWN0IHJwY3JkbWFfeHBydCwgcmRtYV9j b25uZWN0LndvcmspOw0KPiAgCXN0cnVjdCBycGNfeHBydCAqeHBydCA9ICZyX3hwcnQtPnhwcnQ7 DQo+ICsJdW5zaWduZWQgbG9uZyBwZmxhZ3MgPSBjdXJyZW50LT5mbGFnczsNCj4gIAlpbnQgcmMg PSAwOw0KPiAgDQo+ICAJaWYgKCF4cHJ0LT5zaHV0ZG93bikgew0KPiArCQljdXJyZW50LT5mbGFn cyB8PSBQRl9GU1RSQU5TOw0KPiAgCQl4cHJ0X2NsZWFyX2Nvbm5lY3RlZCh4cHJ0KTsNCj4gIA0K PiAgCQlkcHJpbnRrKCJSUEM6ICAgICAgICVzOiAlc2Nvbm5lY3RcbiIsIF9fZnVuY19fLA0KPiBA QCAtMjEyLDEwICsyMTQsMTAgQEAgeHBydF9yZG1hX2Nvbm5lY3Rfd29ya2VyKHN0cnVjdCB3b3Jr X3N0cnVjdCAqd29yaykNCj4gIA0KPiAgb3V0Og0KPiAgCXhwcnRfd2FrZV9wZW5kaW5nX3Rhc2tz KHhwcnQsIHJjKTsNCj4gLQ0KPiAgb3V0X2NsZWFyOg0KPiAgCWRwcmludGsoIlJQQzogICAgICAg JXM6IGV4aXRcbiIsIF9fZnVuY19fKTsNCj4gIAl4cHJ0X2NsZWFyX2Nvbm5lY3RpbmcoeHBydCk7 DQo+ICsJdHNrX3Jlc3RvcmVfZmxhZ3MoY3VycmVudCwgcGZsYWdzLCBQRl9GU1RSQU5TKTsNCj4g IH0NCj4gIA0KPiAgLyoNCj4gZGlmZiAtLWdpdCBhL25ldC9zdW5ycGMveHBydHNvY2suYyBiL25l dC9zdW5ycGMveHBydHNvY2suYw0KPiBpbmRleCA4OTBiMDNmLi42YzdkOGQ1IDEwMDY0NA0KPiAt LS0gYS9uZXQvc3VucnBjL3hwcnRzb2NrLmMNCj4gKysrIGIvbmV0L3N1bnJwYy94cHJ0c29jay5j DQo+IEBAIC0xODkwLDExICsxODkwLDE0IEBAIHN0YXRpYyB2b2lkIHhzX2xvY2FsX3NldHVwX3Nv Y2tldChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAJCWNvbnRhaW5lcl9vZih3b3JrLCBz dHJ1Y3Qgc29ja194cHJ0LCBjb25uZWN0X3dvcmtlci53b3JrKTsNCj4gIAlzdHJ1Y3QgcnBjX3hw cnQgKnhwcnQgPSAmdHJhbnNwb3J0LT54cHJ0Ow0KPiAgCXN0cnVjdCBzb2NrZXQgKnNvY2s7DQo+ ICsJdW5zaWduZWQgbG9uZyBwZmxhZ3MgPSBjdXJyZW50LT5mbGFnczsNCj4gIAlpbnQgc3RhdHVz ID0gLUVJTzsNCj4gIA0KPiAgCWlmICh4cHJ0LT5zaHV0ZG93bikNCj4gIAkJZ290byBvdXQ7DQo+ ICANCj4gKwljdXJyZW50LT5mbGFncyB8PSBQRl9GU1RSQU5TOw0KPiArDQo+ICAJY2xlYXJfYml0 KFhQUlRfQ09OTkVDVElPTl9BQk9SVCwgJnhwcnQtPnN0YXRlKTsNCj4gIAlzdGF0dXMgPSBfX3Nv Y2tfY3JlYXRlKHhwcnQtPnhwcnRfbmV0LCBBRl9MT0NBTCwNCj4gIAkJCQkJU09DS19TVFJFQU0s IDAsICZzb2NrLCAxKTsNCj4gQEAgLTE5MjgsNiArMTkzMSw3IEBAIHN0YXRpYyB2b2lkIHhzX2xv Y2FsX3NldHVwX3NvY2tldChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICBvdXQ6DQo+ICAJ eHBydF9jbGVhcl9jb25uZWN0aW5nKHhwcnQpOw0KPiAgCXhwcnRfd2FrZV9wZW5kaW5nX3Rhc2tz KHhwcnQsIHN0YXR1cyk7DQo+ICsJdHNrX3Jlc3RvcmVfZmxhZ3MoY3VycmVudCwgcGZsYWdzLCBQ Rl9GU1RSQU5TKTsNCj4gIH0NCj4gIA0KPiAgc3RhdGljIHZvaWQgeHNfdWRwX2ZpbmlzaF9jb25u ZWN0aW5nKHN0cnVjdCBycGNfeHBydCAqeHBydCwgc3RydWN0IHNvY2tldCAqc29jaykNCj4gQEAg LTE5NjUsMTEgKzE5NjksMTQgQEAgc3RhdGljIHZvaWQgeHNfdWRwX3NldHVwX3NvY2tldChzdHJ1 Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQo+ICAJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3Qgc29j a194cHJ0LCBjb25uZWN0X3dvcmtlci53b3JrKTsNCj4gIAlzdHJ1Y3QgcnBjX3hwcnQgKnhwcnQg PSAmdHJhbnNwb3J0LT54cHJ0Ow0KPiAgCXN0cnVjdCBzb2NrZXQgKnNvY2sgPSB0cmFuc3BvcnQt PnNvY2s7DQo+ICsJdW5zaWduZWQgbG9uZyBwZmxhZ3MgPSBjdXJyZW50LT5mbGFnczsNCj4gIAlp bnQgc3RhdHVzID0gLUVJTzsNCj4gIA0KPiAgCWlmICh4cHJ0LT5zaHV0ZG93bikNCj4gIAkJZ290 byBvdXQ7DQo+ICANCj4gKwljdXJyZW50LT5mbGFncyB8PSBQRl9GU1RSQU5TOw0KPiArDQo+ICAJ LyogU3RhcnQgYnkgcmVzZXR0aW5nIGFueSBleGlzdGluZyBzdGF0ZSAqLw0KPiAgCXhzX3Jlc2V0 X3RyYW5zcG9ydCh0cmFuc3BvcnQpOw0KPiAgCXNvY2sgPSB4c19jcmVhdGVfc29jayh4cHJ0LCB0 cmFuc3BvcnQsDQo+IEBAIC0xOTg4LDYgKzE5OTUsNyBAQCBzdGF0aWMgdm9pZCB4c191ZHBfc2V0 dXBfc29ja2V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gIG91dDoNCj4gIAl4cHJ0X2Ns ZWFyX2Nvbm5lY3RpbmcoeHBydCk7DQo+ICAJeHBydF93YWtlX3BlbmRpbmdfdGFza3MoeHBydCwg c3RhdHVzKTsNCj4gKwl0c2tfcmVzdG9yZV9mbGFncyhjdXJyZW50LCBwZmxhZ3MsIFBGX0ZTVFJB TlMpOw0KPiAgfQ0KPiAgDQo+ICAvKg0KPiBAQCAtMjEwOCwxMSArMjExNiwxNCBAQCBzdGF0aWMg dm9pZCB4c190Y3Bfc2V0dXBfc29ja2V0KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykNCj4gIAkJ Y29udGFpbmVyX29mKHdvcmssIHN0cnVjdCBzb2NrX3hwcnQsIGNvbm5lY3Rfd29ya2VyLndvcmsp Ow0KPiAgCXN0cnVjdCBzb2NrZXQgKnNvY2sgPSB0cmFuc3BvcnQtPnNvY2s7DQo+ICAJc3RydWN0 IHJwY194cHJ0ICp4cHJ0ID0gJnRyYW5zcG9ydC0+eHBydDsNCj4gKwl1bnNpZ25lZCBsb25nIHBm bGFncyA9IGN1cnJlbnQtPmZsYWdzOw0KPiAgCWludCBzdGF0dXMgPSAtRUlPOw0KPiAgDQo+ICAJ aWYgKHhwcnQtPnNodXRkb3duKQ0KPiAgCQlnb3RvIG91dDsNCj4gIA0KPiArCWN1cnJlbnQtPmZs YWdzIHw9IFBGX0ZTVFJBTlM7DQo+ICsNCj4gIAlpZiAoIXNvY2spIHsNCj4gIAkJY2xlYXJfYml0 KFhQUlRfQ09OTkVDVElPTl9BQk9SVCwgJnhwcnQtPnN0YXRlKTsNCj4gIAkJc29jayA9IHhzX2Ny ZWF0ZV9zb2NrKHhwcnQsIHRyYW5zcG9ydCwNCj4gQEAgLTIxNjIsNiArMjE3Myw3IEBAIHN0YXRp YyB2b2lkIHhzX3RjcF9zZXR1cF9zb2NrZXQoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQ0KPiAg CWNhc2UgLUVJTlBST0dSRVNTOg0KPiAgCWNhc2UgLUVBTFJFQURZOg0KPiAgCQl4cHJ0X2NsZWFy X2Nvbm5lY3RpbmcoeHBydCk7DQo+ICsJCXRza19yZXN0b3JlX2ZsYWdzKGN1cnJlbnQsIHBmbGFn cywgUEZfRlNUUkFOUyk7DQo+ICAJCXJldHVybjsNCj4gIAljYXNlIC1FSU5WQUw6DQo+ICAJCS8q IEhhcHBlbnMsIGZvciBpbnN0YW5jZSwgaWYgdGhlIHVzZXIgc3BlY2lmaWVkIGEgbGluaw0KPiBA QCAtMjE3NCw2ICsyMTg2LDcgQEAgb3V0X2VhZ2FpbjoNCj4gIG91dDoNCj4gIAl4cHJ0X2NsZWFy X2Nvbm5lY3RpbmcoeHBydCk7DQo+ICAJeHBydF93YWtlX3BlbmRpbmdfdGFza3MoeHBydCwgc3Rh dHVzKTsNCj4gKwl0c2tfcmVzdG9yZV9mbGFncyhjdXJyZW50LCBwZmxhZ3MsIFBGX0ZTVFJBTlMp Ow0KPiAgfQ0KPiAgDQo+ICAvKioNCg0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkxpbnV4IE5GUyBj bGllbnQgbWFpbnRhaW5lcg0KDQpOZXRBcHANClRyb25kLk15a2xlYnVzdEBuZXRhcHAuY29tDQp3 d3cubmV0YXBwLmNvbQ0KDQo=