From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Karstens, Nate" Subject: RE: [PATCH 1/4] fs: Implement close-on-fork Date: Fri, 1 May 2020 14:45:16 +0000 Message-ID: <0e884704c25740df8e652d50431facff@garmin.com> References: <20200420071548.62112-1-nate.karstens@garmin.com> <20200420071548.62112-2-nate.karstens@garmin.com> <36dce9b4-a0bf-0015-f6bc-1006938545b1@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <36dce9b4-a0bf-0015-f6bc-1006938545b1@gmail.com> Content-Language: en-US Sender: linux-fsdevel-owner@vger.kernel.org To: Eric Dumazet , Alexander Viro , Jeff Layton , "J. Bruce Fields" , Arnd Bergmann , Richard Henderson , Ivan Kokshaysky , Matt Turner , "James E.J. Bottomley" , Helge Deller , "David S. Miller" , Jakub Kicinski , "linux-fsdevel@vger.kernel.org" , "linux-arch@vger.kernel.org" , "linux-alpha@vger.kernel.org" , "linux-parisc@vger.kernel.org" , "sparclinux@vger.kernel.org" Cc: Changli Gao List-Id: linux-arch.vger.kernel.org RXJpYywNCg0KVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbi4gSSBsb29rZWQgaW50byBpdCBhbmQg bm90aWNlZCB0aGF0IGRvX2Nsb3NlX29uX2V4ZWMoKSBhcHBlYXJzIHRvIGhhdmUgc29tZSBvcHRp bWl6YXRpb25zIGFzIHdlbGw6DQoNCj4gc2V0ID0gZmR0LT5jbG9zZV9vbl9leGVjW2ldOw0KPiBp ZiAoIXNldCkNCj4gCWNvbnRpbnVlOyANCg0KSWYgd2UgaW50ZXJsZWF2ZSB0aGUgY2xvc2Utb24t ZXhlYyBhbmQgY2xvc2Utb24tZm9yayBmbGFncyB0aGVuIHRoaXMgb3B0aW1pemF0aW9uIHdpbGwg aGF2ZSB0byBiZSByZW1vdmVkLiBEbyB5b3UgaGF2ZSBhIHNlbnNlIG9mIHdoaWNoIG9wdGltaXph dGlvbiBwcm92aWRlcyB0aGUgbW9zdCBiZW5lZml0Pw0KDQpJIG5vdGljZWQgYSBjb3VwbGUgb2Yg b3RoZXIgaXNzdWVzIHdpdGggdGhlIG9yaWdpbmFsIHBhdGNoIHRoYXQgSSB3aWxsIG5lZWQgdG8g aW52ZXN0aWdhdGUgb3IgcmV3b3JrOg0KDQoxKSBJJ20gbm90IHN1cmUgZHVwX2ZkKCkgaXMgdGhl IGJlc3QgcGxhY2UgdG8gY2hlY2sgdGhlIGNsb3NlLW9uLWZvcmsgZmxhZy4gRm9yIGV4YW1wbGUs IHRoZSBrc3lzX3Vuc2hhcmUoKSA+IHVuc2hhcmVfZmQoKSA+IGR1cF9mZCgpIGV4ZWN1dGlvbiBw YXRoIHNlZW1zIHN1c3BlY3QuIEkgd2lsbCBlaXRoZXIgYWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBm dW5jdGlvbiBpbmRpY2F0aW5nIGlmIHRoZSBmbGFnIHNob3VsZCBiZSBjaGVja2VkIG9yIGRvIGEg c2VwYXJhdGUgZnVuY3Rpb24sIGxpa2UgZG9fY2xvc2Vfb25fZm9yaygpLg0KMikgSWYgdGhlIGNs b3NlLW9uLWZvcmsgZmxhZyBpcyBzZXQsIHRoZW4gX19jbGVhcl9vcGVuX2ZkKCkgc2hvdWxkIGJl IGNhbGxlZCBpbnN0ZWFkIG9mIGp1c3QgX19jbGVhcl9iaXQoKS4gVGhpcyB3aWxsIGVuc3VyZSB0 aGF0IGZkdC0+ZnVsbF9mZHNfYml0cygpIGlzIHVwZGF0ZWQuDQozKSBOZWVkIHRvIGludmVzdGln YXRlIGlmIHRoZSBjbG9zZS1vbi1mb3JrIChvciBjbG9zZS1vbi1leGVjKSBmbGFncyBuZWVkIHRv IGJlIGNsZWFyZWQgd2hlbiB0aGUgZmlsZSBpcyBjbG9zZWQgYXMgcGFydCBvZiB0aGUgY2xvc2Ut b24tZm9yayBleGVjdXRpb24gcGF0aC4NCg0KT3RoZXJzIC0tIEkgd2lsbCByZXNwb25kIHRvIGZl ZWRiYWNrIG91dHNpZGUgb2YgaW1wbGVtZW50YXRpb24gZGV0YWlscyBpbiBhIHNlcGFyYXRlIG1l c3NhZ2UuDQoNClRoYW5rcywNCg0KTmF0ZQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiANClNlbnQ6IE1vbmRh eSwgQXByaWwgMjAsIDIwMjAgMDU6MjYNClRvOiBLYXJzdGVucywgTmF0ZSA8TmF0ZS5LYXJzdGVu c0BnYXJtaW4uY29tPjsgQWxleGFuZGVyIFZpcm8gPHZpcm9AemVuaXYubGludXgub3JnLnVrPjsg SmVmZiBMYXl0b24gPGpsYXl0b25Aa2VybmVsLm9yZz47IEouIEJydWNlIEZpZWxkcyA8YmZpZWxk c0BmaWVsZHNlcy5vcmc+OyBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPjsgUmljaGFyZCBI ZW5kZXJzb24gPHJ0aEB0d2lkZGxlLm5ldD47IEl2YW4gS29rc2hheXNreSA8aW5rQGp1cmFzc2lj LnBhcmsubXN1LnJ1PjsgTWF0dCBUdXJuZXIgPG1hdHRzdDg4QGdtYWlsLmNvbT47IEphbWVzIEUu Si4gQm90dG9tbGV5IDxKYW1lcy5Cb3R0b21sZXlASGFuc2VuUGFydG5lcnNoaXAuY29tPjsgSGVs Z2UgRGVsbGVyIDxkZWxsZXJAZ214LmRlPjsgRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PjsgSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz47IGxpbnV4LWZzZGV2ZWxA dmdlci5rZXJuZWwub3JnOyBsaW51eC1hcmNoQHZnZXIua2VybmVsLm9yZzsgbGludXgtYWxwaGFA dmdlci5rZXJuZWwub3JnOyBsaW51eC1wYXJpc2NAdmdlci5rZXJuZWwub3JnOyBzcGFyY2xpbnV4 QHZnZXIua2VybmVsLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZw0KQ2M6IENoYW5nbGkgR2FvIDx4aWFvc3VvQGdtYWlsLmNvbT4NClN1Ympl Y3Q6IFJlOiBbUEFUQ0ggMS80XSBmczogSW1wbGVtZW50IGNsb3NlLW9uLWZvcmsNCg0KQ0FVVElP TiAtIEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgYW55IGxpbmtzIG9yIG9wZW4gYW55IGF0 dGFjaG1lbnRzIHVubGVzcyB5b3UgdHJ1c3QgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVu dCBpcyBzYWZlLg0KDQoNCk9uIDQvMjAvMjAgMTI6MTUgQU0sIE5hdGUgS2Fyc3RlbnMgd3JvdGU6 DQo+IFRoZSBjbG9zZS1vbi1mb3JrIGZsYWcgY2F1c2VzIHRoZSBmaWxlIGRlc2NyaXB0b3IgdG8g YmUgY2xvc2VkIA0KPiBhdG9taWNhbGx5IGluIHRoZSBjaGlsZCBwcm9jZXNzIGJlZm9yZSB0aGUg Y2hpbGQgcHJvY2VzcyByZXR1cm5zIGZyb20gDQo+IGZvcmsoKS4gSW1wbGVtZW50IHRoaXMgZmVh dHVyZSBhbmQgcHJvdmlkZSBhIG1ldGhvZCB0byBnZXQvc2V0IHRoZSANCj4gY2xvc2Utb24tZm9y ayBmbGFnIHVzaW5nIGZjbnRsKDIpLg0KPg0KPiBUaGlzIGZ1bmN0aW9uYWxpdHkgd2FzIGFwcHJv dmVkIGJ5IHRoZSBBdXN0aW4gQ29tbW9uIFN0YW5kYXJkcyANCj4gUmV2aXNpb24gR3JvdXAgZm9y IGluY2x1c2lvbiBpbiB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgUE9TSVggDQo+IHN0YW5kYXJk IChzZWUgaXNzdWUgMTMxOCBpbiB0aGUgQXVzdGluIEdyb3VwIERlZmVjdCBUcmFja2VyKS4NCg0K T2ggd2VsbC4uLiB5ZXQgYW5vdGhlciBmZWF0dXJlIHNsb3dpbmcgZG93biBhIGNyaXRpY2FsIHBh dGguDQoNCj4NCj4gQ28tZGV2ZWxvcGVkLWJ5OiBDaGFuZ2xpIEdhbyA8eGlhb3N1b0BnbWFpbC5j b20+DQo+IFNpZ25lZC1vZmYtYnk6IENoYW5nbGkgR2FvIDx4aWFvc3VvQGdtYWlsLmNvbT4NCj4g U2lnbmVkLW9mZi1ieTogTmF0ZSBLYXJzdGVucyA8bmF0ZS5rYXJzdGVuc0BnYXJtaW4uY29tPg0K PiAtLS0NCj4gIGZzL2ZjbnRsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysN Cj4gIGZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTAgKysrKysrKysr KysrKysrKysrKysrKysrKy0NCj4gIGluY2x1ZGUvbGludXgvZmR0YWJsZS5oICAgICAgICAgICAg ICAgIHwgIDcgKysrKw0KPiAgaW5jbHVkZS9saW51eC9maWxlLmggICAgICAgICAgICAgICAgICAg fCAgMiArKw0KPiAgaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ZjbnRsLmggICAgICAgfCAgNSAr LS0NCj4gIHRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9mY250bC5oIHwgIDUgKy0tDQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+DQo+ IGRpZmYgLS1naXQgYS9mcy9mY250bC5jIGIvZnMvZmNudGwuYw0KPiBpbmRleCAyZTRjMGZhMjA3 NGIuLjIzOTY0YWJmNGExYSAxMDA2NDQNCj4gLS0tIGEvZnMvZmNudGwuYw0KPiArKysgYi9mcy9m Y250bC5jDQo+IEBAIC0zMzUsMTAgKzMzNSwxMiBAQCBzdGF0aWMgbG9uZyBkb19mY250bChpbnQg ZmQsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnLA0KPiAgICAgICAgICAgICAg IGJyZWFrOw0KPiAgICAgICBjYXNlIEZfR0VURkQ6DQo+ICAgICAgICAgICAgICAgZXJyID0gZ2V0 X2Nsb3NlX29uX2V4ZWMoZmQpID8gRkRfQ0xPRVhFQyA6IDA7DQo+ICsgICAgICAgICAgICAgZXJy IHw9IGdldF9jbG9zZV9vbl9mb3JrKGZkKSA/IEZEX0NMT0ZPUksgOiAwOw0KPiAgICAgICAgICAg ICAgIGJyZWFrOw0KPiAgICAgICBjYXNlIEZfU0VURkQ6DQo+ICAgICAgICAgICAgICAgZXJyID0g MDsNCj4gICAgICAgICAgICAgICBzZXRfY2xvc2Vfb25fZXhlYyhmZCwgYXJnICYgRkRfQ0xPRVhF Qyk7DQo+ICsgICAgICAgICAgICAgc2V0X2Nsb3NlX29uX2ZvcmsoZmQsIGFyZyAmIEZEX0NMT0ZP UkspOw0KPiAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICBjYXNlIEZfR0VURkw6DQo+ICAg ICAgICAgICAgICAgZXJyID0gZmlscC0+Zl9mbGFnczsNCj4gZGlmZiAtLWdpdCBhL2ZzL2ZpbGUu YyBiL2ZzL2ZpbGUuYw0KPiBpbmRleCBjOGE0ZTRjODZlNTUuLmRlNzI2MGJhNzE4ZCAxMDA2NDQN Cj4gLS0tIGEvZnMvZmlsZS5jDQo+ICsrKyBiL2ZzL2ZpbGUuYw0KPiBAQCAtNTcsNiArNTcsOCBA QCBzdGF0aWMgdm9pZCBjb3B5X2ZkX2JpdG1hcHMoc3RydWN0IGZkdGFibGUgKm5mZHQsIHN0cnVj dCBmZHRhYmxlICpvZmR0LA0KPiAgICAgICBtZW1zZXQoKGNoYXIgKiluZmR0LT5vcGVuX2ZkcyAr IGNweSwgMCwgc2V0KTsNCj4gICAgICAgbWVtY3B5KG5mZHQtPmNsb3NlX29uX2V4ZWMsIG9mZHQt PmNsb3NlX29uX2V4ZWMsIGNweSk7DQo+ICAgICAgIG1lbXNldCgoY2hhciAqKW5mZHQtPmNsb3Nl X29uX2V4ZWMgKyBjcHksIDAsIHNldCk7DQo+ICsgICAgIG1lbWNweShuZmR0LT5jbG9zZV9vbl9m b3JrLCBvZmR0LT5jbG9zZV9vbl9mb3JrLCBjcHkpOw0KPiArICAgICBtZW1zZXQoKGNoYXIgKilu ZmR0LT5jbG9zZV9vbl9mb3JrICsgY3B5LCAwLCBzZXQpOw0KPg0KDQpJIHN1Z2dlc3Qgd2UgZ3Jv dXAgdGhlIHR3byBiaXRzIG9mIGEgZmlsZSAoY2xvc2Vfb25fZXhlYywgY2xvc2Vfb25fZm9yaykg dG9nZXRoZXIsIHNvIHRoYXQgd2UgZG8gbm90IGhhdmUgdG8gZGlydHkgdHdvIHNlcGFyYXRlIGNh Y2hlIGxpbmVzLg0KDQpPdGhlcndpc2Ugd2Ugd2lsbCBhZGQgeWV0IGFub3RoZXIgY2FjaGUgbGlu ZSBtaXNzIGF0IGV2ZXJ5IGZpbGUgb3BlbmluZy9jbG9zaW5nIGZvciBwcm9jZXNzZXMgd2l0aCBi aWcgZmlsZSB0YWJsZXMuDQoNCkllIGhhdmluZyBhIF9zaW5nbGVfIGJpdG1hcCBhcnJheSwgZXZl biBiaXQgZm9yIGNsb3NlX29uX2V4ZWMsIG9kZCBiaXQgZm9yIGNsb3NlX29uX2ZvcmsNCg0Kc3Rh dGljIGlubGluZSB2b2lkIF9fc2V0X2Nsb3NlX29uX2V4ZWModW5zaWduZWQgaW50IGZkLCBzdHJ1 Y3QgZmR0YWJsZSAqZmR0KSB7DQogICAgICAgIF9fc2V0X2JpdChmZCAqIDIsIGZkdC0+Y2xvc2Vf b25fZm9ya19leGVjKTsgfQ0KDQpzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfY2xvc2Vfb25fZm9y ayh1bnNpZ25lZCBpbnQgZmQsIHN0cnVjdCBmZHRhYmxlICpmZHQpIHsNCiAgICAgICAgX19zZXRf Yml0KGZkICogMiArIDEsIGZkdC0+Y2xvc2Vfb25fZm9ya19leGVjKTsgfQ0KDQpBbHNvIHRoZSBG X0dFVEZEL0ZfU0VURkQgaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgYSBzaW5nbGUgZnVuY3Rpb24g Y2FsbCwgdG8gbm90IGFjcXVpcmUgdGhlIHNwaW5sb2NrIHR3aWNlLg0KDQoNCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-mw2nam10on2100.outbound.protection.outlook.com ([40.107.94.100]:53792 "EHLO NAM10-MW2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728929AbgEAOpX (ORCPT ); Fri, 1 May 2020 10:45:23 -0400 From: "Karstens, Nate" Subject: RE: [PATCH 1/4] fs: Implement close-on-fork Date: Fri, 1 May 2020 14:45:16 +0000 Message-ID: <0e884704c25740df8e652d50431facff@garmin.com> References: <20200420071548.62112-1-nate.karstens@garmin.com> <20200420071548.62112-2-nate.karstens@garmin.com> <36dce9b4-a0bf-0015-f6bc-1006938545b1@gmail.com> In-Reply-To: <36dce9b4-a0bf-0015-f6bc-1006938545b1@gmail.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-arch-owner@vger.kernel.org List-ID: To: Eric Dumazet , Alexander Viro , Jeff Layton , "J. Bruce Fields" , Arnd Bergmann , Richard Henderson , Ivan Kokshaysky , Matt Turner , "James E.J. Bottomley" , Helge Deller , "David S. Miller" , Jakub Kicinski , "linux-fsdevel@vger.kernel.org" , "linux-arch@vger.kernel.org" , "linux-alpha@vger.kernel.org" , "linux-parisc@vger.kernel.org" , "sparclinux@vger.kernel.org" , "netdev@vger.kernel.org" , "linux-kernel@vger.kernel.org" Cc: Changli Gao Message-ID: <20200501144516.pdqkazoYWB1aABLXJPFTzyad66DluqyEIGqI9lGSZfI@z> RXJpYywNCg0KVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbi4gSSBsb29rZWQgaW50byBpdCBhbmQg bm90aWNlZCB0aGF0IGRvX2Nsb3NlX29uX2V4ZWMoKSBhcHBlYXJzIHRvIGhhdmUgc29tZSBvcHRp bWl6YXRpb25zIGFzIHdlbGw6DQoNCj4gc2V0ID0gZmR0LT5jbG9zZV9vbl9leGVjW2ldOw0KPiBp ZiAoIXNldCkNCj4gCWNvbnRpbnVlOyANCg0KSWYgd2UgaW50ZXJsZWF2ZSB0aGUgY2xvc2Utb24t ZXhlYyBhbmQgY2xvc2Utb24tZm9yayBmbGFncyB0aGVuIHRoaXMgb3B0aW1pemF0aW9uIHdpbGwg aGF2ZSB0byBiZSByZW1vdmVkLiBEbyB5b3UgaGF2ZSBhIHNlbnNlIG9mIHdoaWNoIG9wdGltaXph dGlvbiBwcm92aWRlcyB0aGUgbW9zdCBiZW5lZml0Pw0KDQpJIG5vdGljZWQgYSBjb3VwbGUgb2Yg b3RoZXIgaXNzdWVzIHdpdGggdGhlIG9yaWdpbmFsIHBhdGNoIHRoYXQgSSB3aWxsIG5lZWQgdG8g aW52ZXN0aWdhdGUgb3IgcmV3b3JrOg0KDQoxKSBJJ20gbm90IHN1cmUgZHVwX2ZkKCkgaXMgdGhl IGJlc3QgcGxhY2UgdG8gY2hlY2sgdGhlIGNsb3NlLW9uLWZvcmsgZmxhZy4gRm9yIGV4YW1wbGUs IHRoZSBrc3lzX3Vuc2hhcmUoKSA+IHVuc2hhcmVfZmQoKSA+IGR1cF9mZCgpIGV4ZWN1dGlvbiBw YXRoIHNlZW1zIHN1c3BlY3QuIEkgd2lsbCBlaXRoZXIgYWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBm dW5jdGlvbiBpbmRpY2F0aW5nIGlmIHRoZSBmbGFnIHNob3VsZCBiZSBjaGVja2VkIG9yIGRvIGEg c2VwYXJhdGUgZnVuY3Rpb24sIGxpa2UgZG9fY2xvc2Vfb25fZm9yaygpLg0KMikgSWYgdGhlIGNs b3NlLW9uLWZvcmsgZmxhZyBpcyBzZXQsIHRoZW4gX19jbGVhcl9vcGVuX2ZkKCkgc2hvdWxkIGJl IGNhbGxlZCBpbnN0ZWFkIG9mIGp1c3QgX19jbGVhcl9iaXQoKS4gVGhpcyB3aWxsIGVuc3VyZSB0 aGF0IGZkdC0+ZnVsbF9mZHNfYml0cygpIGlzIHVwZGF0ZWQuDQozKSBOZWVkIHRvIGludmVzdGln YXRlIGlmIHRoZSBjbG9zZS1vbi1mb3JrIChvciBjbG9zZS1vbi1leGVjKSBmbGFncyBuZWVkIHRv IGJlIGNsZWFyZWQgd2hlbiB0aGUgZmlsZSBpcyBjbG9zZWQgYXMgcGFydCBvZiB0aGUgY2xvc2Ut b24tZm9yayBleGVjdXRpb24gcGF0aC4NCg0KT3RoZXJzIC0tIEkgd2lsbCByZXNwb25kIHRvIGZl ZWRiYWNrIG91dHNpZGUgb2YgaW1wbGVtZW50YXRpb24gZGV0YWlscyBpbiBhIHNlcGFyYXRlIG1l c3NhZ2UuDQoNClRoYW5rcywNCg0KTmF0ZQ0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K RnJvbTogRXJpYyBEdW1hemV0IDxlcmljLmR1bWF6ZXRAZ21haWwuY29tPiANClNlbnQ6IE1vbmRh eSwgQXByaWwgMjAsIDIwMjAgMDU6MjYNClRvOiBLYXJzdGVucywgTmF0ZSA8TmF0ZS5LYXJzdGVu c0BnYXJtaW4uY29tPjsgQWxleGFuZGVyIFZpcm8gPHZpcm9AemVuaXYubGludXgub3JnLnVrPjsg SmVmZiBMYXl0b24gPGpsYXl0b25Aa2VybmVsLm9yZz47IEouIEJydWNlIEZpZWxkcyA8YmZpZWxk c0BmaWVsZHNlcy5vcmc+OyBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPjsgUmljaGFyZCBI ZW5kZXJzb24gPHJ0aEB0d2lkZGxlLm5ldD47IEl2YW4gS29rc2hheXNreSA8aW5rQGp1cmFzc2lj LnBhcmsubXN1LnJ1PjsgTWF0dCBUdXJuZXIgPG1hdHRzdDg4QGdtYWlsLmNvbT47IEphbWVzIEUu Si4gQm90dG9tbGV5IDxKYW1lcy5Cb3R0b21sZXlASGFuc2VuUGFydG5lcnNoaXAuY29tPjsgSGVs Z2UgRGVsbGVyIDxkZWxsZXJAZ214LmRlPjsgRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PjsgSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz47IGxpbnV4LWZzZGV2ZWxA dmdlci5rZXJuZWwub3JnOyBsaW51eC1hcmNoQHZnZXIua2VybmVsLm9yZzsgbGludXgtYWxwaGFA dmdlci5rZXJuZWwub3JnOyBsaW51eC1wYXJpc2NAdmdlci5rZXJuZWwub3JnOyBzcGFyY2xpbnV4 QHZnZXIua2VybmVsLm9yZzsgbmV0ZGV2QHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVsQHZn ZXIua2VybmVsLm9yZw0KQ2M6IENoYW5nbGkgR2FvIDx4aWFvc3VvQGdtYWlsLmNvbT4NClN1Ympl Y3Q6IFJlOiBbUEFUQ0ggMS80XSBmczogSW1wbGVtZW50IGNsb3NlLW9uLWZvcmsNCg0KQ0FVVElP TiAtIEVYVEVSTkFMIEVNQUlMOiBEbyBub3QgY2xpY2sgYW55IGxpbmtzIG9yIG9wZW4gYW55IGF0 dGFjaG1lbnRzIHVubGVzcyB5b3UgdHJ1c3QgdGhlIHNlbmRlciBhbmQga25vdyB0aGUgY29udGVu dCBpcyBzYWZlLg0KDQoNCk9uIDQvMjAvMjAgMTI6MTUgQU0sIE5hdGUgS2Fyc3RlbnMgd3JvdGU6 DQo+IFRoZSBjbG9zZS1vbi1mb3JrIGZsYWcgY2F1c2VzIHRoZSBmaWxlIGRlc2NyaXB0b3IgdG8g YmUgY2xvc2VkIA0KPiBhdG9taWNhbGx5IGluIHRoZSBjaGlsZCBwcm9jZXNzIGJlZm9yZSB0aGUg Y2hpbGQgcHJvY2VzcyByZXR1cm5zIGZyb20gDQo+IGZvcmsoKS4gSW1wbGVtZW50IHRoaXMgZmVh dHVyZSBhbmQgcHJvdmlkZSBhIG1ldGhvZCB0byBnZXQvc2V0IHRoZSANCj4gY2xvc2Utb24tZm9y ayBmbGFnIHVzaW5nIGZjbnRsKDIpLg0KPg0KPiBUaGlzIGZ1bmN0aW9uYWxpdHkgd2FzIGFwcHJv dmVkIGJ5IHRoZSBBdXN0aW4gQ29tbW9uIFN0YW5kYXJkcyANCj4gUmV2aXNpb24gR3JvdXAgZm9y IGluY2x1c2lvbiBpbiB0aGUgbmV4dCByZXZpc2lvbiBvZiB0aGUgUE9TSVggDQo+IHN0YW5kYXJk IChzZWUgaXNzdWUgMTMxOCBpbiB0aGUgQXVzdGluIEdyb3VwIERlZmVjdCBUcmFja2VyKS4NCg0K T2ggd2VsbC4uLiB5ZXQgYW5vdGhlciBmZWF0dXJlIHNsb3dpbmcgZG93biBhIGNyaXRpY2FsIHBh dGguDQoNCj4NCj4gQ28tZGV2ZWxvcGVkLWJ5OiBDaGFuZ2xpIEdhbyA8eGlhb3N1b0BnbWFpbC5j b20+DQo+IFNpZ25lZC1vZmYtYnk6IENoYW5nbGkgR2FvIDx4aWFvc3VvQGdtYWlsLmNvbT4NCj4g U2lnbmVkLW9mZi1ieTogTmF0ZSBLYXJzdGVucyA8bmF0ZS5rYXJzdGVuc0BnYXJtaW4uY29tPg0K PiAtLS0NCj4gIGZzL2ZjbnRsLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKysN Cj4gIGZzL2ZpbGUuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNTAgKysrKysrKysr KysrKysrKysrKysrKysrKy0NCj4gIGluY2x1ZGUvbGludXgvZmR0YWJsZS5oICAgICAgICAgICAg ICAgIHwgIDcgKysrKw0KPiAgaW5jbHVkZS9saW51eC9maWxlLmggICAgICAgICAgICAgICAgICAg fCAgMiArKw0KPiAgaW5jbHVkZS91YXBpL2FzbS1nZW5lcmljL2ZjbnRsLmggICAgICAgfCAgNSAr LS0NCj4gIHRvb2xzL2luY2x1ZGUvdWFwaS9hc20tZ2VuZXJpYy9mY250bC5oIHwgIDUgKy0tDQo+ ICA2IGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+DQo+ IGRpZmYgLS1naXQgYS9mcy9mY250bC5jIGIvZnMvZmNudGwuYw0KPiBpbmRleCAyZTRjMGZhMjA3 NGIuLjIzOTY0YWJmNGExYSAxMDA2NDQNCj4gLS0tIGEvZnMvZmNudGwuYw0KPiArKysgYi9mcy9m Y250bC5jDQo+IEBAIC0zMzUsMTAgKzMzNSwxMiBAQCBzdGF0aWMgbG9uZyBkb19mY250bChpbnQg ZmQsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnLA0KPiAgICAgICAgICAgICAg IGJyZWFrOw0KPiAgICAgICBjYXNlIEZfR0VURkQ6DQo+ICAgICAgICAgICAgICAgZXJyID0gZ2V0 X2Nsb3NlX29uX2V4ZWMoZmQpID8gRkRfQ0xPRVhFQyA6IDA7DQo+ICsgICAgICAgICAgICAgZXJy IHw9IGdldF9jbG9zZV9vbl9mb3JrKGZkKSA/IEZEX0NMT0ZPUksgOiAwOw0KPiAgICAgICAgICAg ICAgIGJyZWFrOw0KPiAgICAgICBjYXNlIEZfU0VURkQ6DQo+ICAgICAgICAgICAgICAgZXJyID0g MDsNCj4gICAgICAgICAgICAgICBzZXRfY2xvc2Vfb25fZXhlYyhmZCwgYXJnICYgRkRfQ0xPRVhF Qyk7DQo+ICsgICAgICAgICAgICAgc2V0X2Nsb3NlX29uX2ZvcmsoZmQsIGFyZyAmIEZEX0NMT0ZP UkspOw0KPiAgICAgICAgICAgICAgIGJyZWFrOw0KPiAgICAgICBjYXNlIEZfR0VURkw6DQo+ICAg ICAgICAgICAgICAgZXJyID0gZmlscC0+Zl9mbGFnczsNCj4gZGlmZiAtLWdpdCBhL2ZzL2ZpbGUu YyBiL2ZzL2ZpbGUuYw0KPiBpbmRleCBjOGE0ZTRjODZlNTUuLmRlNzI2MGJhNzE4ZCAxMDA2NDQN Cj4gLS0tIGEvZnMvZmlsZS5jDQo+ICsrKyBiL2ZzL2ZpbGUuYw0KPiBAQCAtNTcsNiArNTcsOCBA QCBzdGF0aWMgdm9pZCBjb3B5X2ZkX2JpdG1hcHMoc3RydWN0IGZkdGFibGUgKm5mZHQsIHN0cnVj dCBmZHRhYmxlICpvZmR0LA0KPiAgICAgICBtZW1zZXQoKGNoYXIgKiluZmR0LT5vcGVuX2ZkcyAr IGNweSwgMCwgc2V0KTsNCj4gICAgICAgbWVtY3B5KG5mZHQtPmNsb3NlX29uX2V4ZWMsIG9mZHQt PmNsb3NlX29uX2V4ZWMsIGNweSk7DQo+ICAgICAgIG1lbXNldCgoY2hhciAqKW5mZHQtPmNsb3Nl X29uX2V4ZWMgKyBjcHksIDAsIHNldCk7DQo+ICsgICAgIG1lbWNweShuZmR0LT5jbG9zZV9vbl9m b3JrLCBvZmR0LT5jbG9zZV9vbl9mb3JrLCBjcHkpOw0KPiArICAgICBtZW1zZXQoKGNoYXIgKilu ZmR0LT5jbG9zZV9vbl9mb3JrICsgY3B5LCAwLCBzZXQpOw0KPg0KDQpJIHN1Z2dlc3Qgd2UgZ3Jv dXAgdGhlIHR3byBiaXRzIG9mIGEgZmlsZSAoY2xvc2Vfb25fZXhlYywgY2xvc2Vfb25fZm9yaykg dG9nZXRoZXIsIHNvIHRoYXQgd2UgZG8gbm90IGhhdmUgdG8gZGlydHkgdHdvIHNlcGFyYXRlIGNh Y2hlIGxpbmVzLg0KDQpPdGhlcndpc2Ugd2Ugd2lsbCBhZGQgeWV0IGFub3RoZXIgY2FjaGUgbGlu ZSBtaXNzIGF0IGV2ZXJ5IGZpbGUgb3BlbmluZy9jbG9zaW5nIGZvciBwcm9jZXNzZXMgd2l0aCBi aWcgZmlsZSB0YWJsZXMuDQoNCkllIGhhdmluZyBhIF9zaW5nbGVfIGJpdG1hcCBhcnJheSwgZXZl biBiaXQgZm9yIGNsb3NlX29uX2V4ZWMsIG9kZCBiaXQgZm9yIGNsb3NlX29uX2ZvcmsNCg0Kc3Rh dGljIGlubGluZSB2b2lkIF9fc2V0X2Nsb3NlX29uX2V4ZWModW5zaWduZWQgaW50IGZkLCBzdHJ1 Y3QgZmR0YWJsZSAqZmR0KSB7DQogICAgICAgIF9fc2V0X2JpdChmZCAqIDIsIGZkdC0+Y2xvc2Vf b25fZm9ya19leGVjKTsgfQ0KDQpzdGF0aWMgaW5saW5lIHZvaWQgX19zZXRfY2xvc2Vfb25fZm9y ayh1bnNpZ25lZCBpbnQgZmQsIHN0cnVjdCBmZHRhYmxlICpmZHQpIHsNCiAgICAgICAgX19zZXRf Yml0KGZkICogMiArIDEsIGZkdC0+Y2xvc2Vfb25fZm9ya19leGVjKTsgfQ0KDQpBbHNvIHRoZSBG X0dFVEZEL0ZfU0VURkQgaW1wbGVtZW50YXRpb24gbXVzdCB1c2UgYSBzaW5nbGUgZnVuY3Rpb24g Y2FsbCwgdG8gbm90IGFjcXVpcmUgdGhlIHNwaW5sb2NrIHR3aWNlLg0KDQoNCg==