Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6EF1FC25B4E for ; Sun, 22 Jan 2023 14:58:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229942AbjAVO6z (ORCPT ); Sun, 22 Jan 2023 09:58:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229750AbjAVO6y (ORCPT ); Sun, 22 Jan 2023 09:58:54 -0500 Received: from NAM02-DM3-obe.outbound.protection.outlook.com (mail-dm3nam02on2051.outbound.protection.outlook.com [40.107.95.51]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9F3662D5C; Sun, 22 Jan 2023 06:58:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bfI1foBlhZ+cbBwhOUGZmPMRfhy/6a7hkvRJ0MZzoWqoY2aDw0aNcE6jWie+g1FjI0dJ7+oFuuXr+LiH6u+3Gc+WTC0MPGcl8rI/Ej85ncIi5RmygXRmW91mmi+ZpJ/LgIgkDDd/oCL1uVMnZXsupskRwQBwnGWK3dh2cPOTrJ3GVkXnq/W4BQJOsD1ier/rYwVtO+MuGMq+i3cM1kizEIYlh5AK3N6dG6HHIa2Nc78swETUAwpyF0b2l9jePMNWT1aPeN7TLwdgkyL6f1za95nVNVVm9QUKTBSnvRHyW3ARPQDF5JXI9/9BZ0q3HXYbL2TFDQXGMMEW+fpl5gDJzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=yxpOnVNyQwHK/aFKju5Qt6SJ6EtqFLTsOpMMCV498U8=; b=XQfgXlgUqsNkIH8XcjW/GQhH0o0wE03zCEF44cRVCBFxqMDPxeUU8PrmrmXmEh3qcY7DCa0H4jeFJc7lIodzZYKO3k7GWbbTrDL6dFiTX34UuvvM+Fj4nOSBFnvkwMZst8E6SQpQFvucA/dRmVW5BQYgI7OZ8lAzZi/HUD3J30iMw7GFhShtP2GvZdEem4C8waDQS7XgxkjH/eFZDNJMqe1yBByqwfNPw/3Fp9muezwcvEmZWwo+W+RAey97iISRON6iLdAPmgSh9QoLAWc0AVcMvRwwF/Xt0QN2qiK+E/PsRaeEfSkJJQO1++h62+K3lYOfl7DezBykgsRuVhRPNQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=yxpOnVNyQwHK/aFKju5Qt6SJ6EtqFLTsOpMMCV498U8=; b=CkB+3+cKOFEoPdiQ8bjAmGy83t21/CqUpTdEzR3FKU7IVgfgXI6S1CizbpfquqqRWii50YYrlJM0iS4QzzPhlufiRcjRo6RMf6GecK1edK66Xha7Y4geUJDwt+vZhSBaK9g4+hb9k290SAlj6g+qguHa0XM5hELGHt7mLejkU7IO8mnHmNgGYA8uSwfI/W6bk7EYXpjhSdU5jTlAJT7LgIu4J6wuU5wLIrNIdSH6c811BmxsPg2uDQsjXln01DQtaQLp6zk0pw4vluSVud0NUiXV0ml5SuYMDvcO6xaEhcuRs2Eyirg8kbGPNp53O9CJ8yGrzMaRDFX4qluFP3V5Ig== Received: from MN2PR12MB4486.namprd12.prod.outlook.com (2603:10b6:208:263::23) by MN2PR12MB4062.namprd12.prod.outlook.com (2603:10b6:208:1d0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.28; Sun, 22 Jan 2023 14:58:32 +0000 Received: from MN2PR12MB4486.namprd12.prod.outlook.com ([fe80::70b:9b93:5fd9:96d5]) by MN2PR12MB4486.namprd12.prod.outlook.com ([fe80::70b:9b93:5fd9:96d5%9]) with mapi id 15.20.6002.028; Sun, 22 Jan 2023 14:58:32 +0000 From: Shachar Kagan To: Jeff Layton , Chuck Lever III CC: Ruben Vestergaard , Torkil Svensgaard , Linux NFS Mailing List , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH] nfsd: don't free files unconditionally in __nfsd_file_cache_purge Thread-Topic: [PATCH] nfsd: don't free files unconditionally in __nfsd_file_cache_purge Thread-Index: AQHZLQi1Ys7+/1QvvU6pGCpXcVFjk66nv28AgAAJSgCAAVH1AIAABJoAgAFp8iA= Date: Sun, 22 Jan 2023 14:58:31 +0000 Message-ID: References: <20230120195215.42243-1-jlayton@kernel.org> <3BB57727-27FC-4294-A5F8-FBD8E900D94D@oracle.com> <539c19a01e7f6d582d7ae2804977ef779b29d44b.camel@kernel.org> In-Reply-To: <539c19a01e7f6d582d7ae2804977ef779b29d44b.camel@kernel.org> Accept-Language: he-IL, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MN2PR12MB4486:EE_|MN2PR12MB4062:EE_ x-ms-office365-filtering-correlation-id: e0c85e42-3c88-44e6-b2ba-08dafc8920e6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: U66l0Q59DiGGhOveijRbieg4codHAx2FFcPgAMk3N22ir4lGJLDxydnbB7muIv89EyqOSttistKj5DtZyod2MNPuIEH1vn5jouQTXvUnxISlSzjb5JDouSyCSexlZmZrDEvhG1WTw3qsw2OPWjIsL8BQ5iEV4hkyVG6Z4YUOqBqKy9jwuaEAWyTe3tsng6elIQWwe99NYd8TdoCyeghNVgttEkTp/7KHP6R2eY2uS2xk28cbGaaY83HINxQwxIzDNHNOA2IHY1qyBQeFaPEE/Xv+0R73hY1KFFYkw6TRecNPCCLdTABTN3l+cvm9XDxFoFqFuyQchHondeGkTufTAg6E4kmJr8jW7FHi9YAxrm1ThJVtJkihkNqo0ZubiQFry/jRSEeeO+y8wKmnOS7xL/198JYTP2yXKrPYAvLnZTPceydYSIroXsotnUY8D8Z0Lc0hGZXrhEIEGwABNraHzKveSIe06DJ2n2jHtHUOzb7Gcjym4Cndl+1iX5Q9l/72SuWeKWLYQb30SL1ERH6soL3H+1S98NqIk2JEHousuUNkUILtpS1jkSW5RyJzbf7q4yriP8dHe/qvBuVUOnjjAc0dAvtjvYsE7OsmNUseJl7h6eVfg1ZcH+s4VEUbIZBpQ+3qrC0K0U3XZLxjkpElqdK66GEZbnLzBavLOc/rvsh+lLR1rOa/KrFs7ZjteGZUbNp9xVtQ0SWHdTJrZw6NKw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR12MB4486.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(376002)(396003)(366004)(39860400002)(136003)(346002)(451199015)(8936002)(5660300002)(41300700001)(2906002)(66946007)(76116006)(66446008)(66476007)(71200400001)(66556008)(316002)(4326008)(64756008)(8676002)(54906003)(110136005)(7696005)(478600001)(6506007)(53546011)(186003)(26005)(9686003)(55016003)(86362001)(38070700005)(83380400001)(122000001)(38100700002)(52536014)(33656002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aEJtS2d0NVpDUUV4c0MxMkp3eSsra1JYY2l5Y3hmaFcvWThuRUowdHp5VGpy?= =?utf-8?B?bStrMEVtOERrazNjdmNNSTY4VE1xR2xDYUUyaFpMem5iU01QNnJUeWJjVlVk?= =?utf-8?B?VGpoZmMxWVphUEl6Zm5Ibkx4T1IycThvWHNDclhLdVBxcUo4eWZhaWlMUEMy?= =?utf-8?B?b0l2NFVTT01RVlRpZ1ZJQ3hBUEJmWFBLWXVwd3R0M2dZQXZ3WEptMnljNjFj?= =?utf-8?B?Tk5xcWoyQ3cxMVBiYlgzbXFGclZNMWxBbHIyYUJNN1Q5WFR2NWUvZTFPK2xV?= =?utf-8?B?R0szaW9Hc3FqTWQ3QmdZRk9XNlpkb3UyMzNaYWhhUGFDU2xOL0p5TVlJeXV1?= =?utf-8?B?T3hnNVRCcm1UZyttZ0hxd2xQM1VwOGkvZWYzL3FsMDJ0TCtobVl3V3JGNE9M?= =?utf-8?B?ZSsvekZXaE1PQzZiTTVSN2VzT1Btdk15SWxQZlNHU3JpajJyYlZlejJmemxm?= =?utf-8?B?ZnVwVHU5NjREandjUkxlZXdQS0JQbUV3Tzc2eDE2S3gyMHpQQVpsSURJSlVH?= =?utf-8?B?UHcrR0ZsR25DakxrSGFSYlVDemYzZDd1d3pQbzdKRmVSQUY4d0dFTC9idFM4?= =?utf-8?B?OENMVnltU3NKQWtGc0o1dThxZHlUVHZsM1NGd1dOYUFkM3FraHoxSThEVHZP?= =?utf-8?B?Rys4Lyt3cHhHbjdBVDhnV05YMVBsVGFTMldhbGJ0NGJNZXMyV0U0NTdRRU9Y?= =?utf-8?B?aXRKN2t0eTdHZmF4MGQ3VEVYZDc3ODlZRmFKUkZOeFQyalF5dUtPQ3UybzBa?= =?utf-8?B?cGZsOWhYTUhOc3ZBcG40QjhXUjFLUjNBK2xvb0J6NEpBd2NEazB2RGlvRWlj?= =?utf-8?B?blRtSGhPVGZMODFjVGc2b1ZoaS9rYTJjUkxNSlpkN3crT09NYmUrNmEzbHRk?= =?utf-8?B?cXMxeVlFdktIci9OV2FSSmdQVWozVEJiMnFyK0ZqcmFrQW5TYW91OFFscFlP?= =?utf-8?B?RG1BdWdGSDVsZ054bkg1Z1ZsQ29WWFBkRjg3UU9SbEFWVXVhOVk2Zy9VN1NY?= =?utf-8?B?dm9NTWtTT1JrYmxHaTBPR3hGNGRmbEdENXNwTzJEazlWUXBJLzhaQ2tLQXpZ?= =?utf-8?B?Vyt5Ni9PMEpFZnh4WlJ5clQ3WG80cis5VXRUNTM4dTViVHFIWjBQanpvaE1D?= =?utf-8?B?dzRjcFdBYjBRSmQ4QUhvb0F4Z2pEOFBFbXZaajlSSUJYaWhzRmx5THQwQlE2?= =?utf-8?B?STNjaE02SWZyZlF5YURUSUh1RWxjUW9GbVVoN3BCR1pUL2M1MXZHOGxqWkR1?= =?utf-8?B?RThJNGtwVjNUWkNwTlEzY200LzQvTWIrYzJvMHRVR2VqdEtEUzM1OW93dEtX?= =?utf-8?B?czZVc0s2ZEFLOU16Q01ubEkzby9IU2dTcGZyUTF5Wm1zM1dNaEJaQ3daaFM2?= =?utf-8?B?dHFwcVRORi9jM3pQVmVBRVh4bU1TYlBVNXFmQTd6U0JxVkJycnFpbThSZ3ZG?= =?utf-8?B?bHlHWlFjZElFOENNN2FESy9COVZPSlViZTVRYXV6cXhLNStpd3YzZHRzUlFj?= =?utf-8?B?dXRPZVpnMGlMUFU4WDVyMFNvSXJlWFBJMmo1Z2NRWVFQd3RoL2RxTGNJdFEv?= =?utf-8?B?WExMSDNodFJ1ZzRLcWQ1eHJTN1dXSG8yc0JpUmVhRVNQU1BNZ0pacS8xRTg2?= =?utf-8?B?NnFZUW9UUUhtR1Fha3ZKRU1Wd3JoVzBUS1pqVFdsV3dxd3BlbjdqQzNMS01I?= =?utf-8?B?MkVscElFWk9zZ2VzVHJGbnN4YmtiOE5EeWFMY0MxL2c3VDVZcE1JT1pKNEZw?= =?utf-8?B?K3pWQnUybitTYmFVU1dKTXkxempXSWg4MU4rMTM2R3F1OU96NlFTeFdsblNV?= =?utf-8?B?MHQ1ZkxvL3JFNmQ1SVdzdHlmWWpFRmdHOWFtM3U2SVhBdUx2UnVITXJyeHh6?= =?utf-8?B?cW1QMHBETkQ1cENWK1A0UElleVdPeVl0bHNkYm1qb1FoSFl1Y3pEaVV0Q1Zu?= =?utf-8?B?TVhXbzh5ZEtuM0ZDWi9FTldzZFBGb0lnNVljUk9KcU1oUzA0cWtWcnI0VWRS?= =?utf-8?B?Z2R1U0xPY2ZtckxzKzVmL3hlbDdHSmRCMmJkQnlaNmFwSVpDTlpxWkRlRlp4?= =?utf-8?B?RFplWEZHM3Iwa1JMRDhISHE5NGJXb2lPcjY2S2VaL1g3WWxNdlN6c09meFdp?= =?utf-8?Q?b0TL8CP2Q7HSoF8gEk9/+9gsQ?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR12MB4486.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e0c85e42-3c88-44e6-b2ba-08dafc8920e6 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jan 2023 14:58:31.8899 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: soCNJIy0dHrRvBiKRErID8E6BtIdths4ONN72+OPof+AiPbkn1bQb2RDot8P012JdsYn0H3Xuu5yFIhIDClpaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4062 Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org DQpPbiBTdW4sIDIwMjMtMDEtMjIgYXQgMTY6NTggKzAwMDAsIFNoYWNoYXIgS2FnYW4gd3JvdGU6 DQoNCj4gT24gU2F0LCAyMDIzLTAxLTIxIGF0IDE3OjA0ICswMDAwLCBDaHVjayBMZXZlciBJSUkg d3JvdGU6DQo+ID4NCj4gPiA+IE9uIEphbiAyMCwgMjAyMywgYXQgMzo1NCBQTSwgSmVmZiBMYXl0 b24gPGpsYXl0b25Aa2VybmVsLm9yZz4gd3JvdGU6DQo+ID4gPg0KPiA+ID4gT24gRnJpLCAyMDIz LTAxLTIwIGF0IDIwOjIxICswMDAwLCBDaHVjayBMZXZlciBJSUkgd3JvdGU6DQo+ID4gPiA+DQo+ ID4gPiA+ID4gT24gSmFuIDIwLCAyMDIzLCBhdCAyOjUyIFBNLCBKZWZmIExheXRvbiA8amxheXRv bkBrZXJuZWwub3JnPiB3cm90ZToNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IG5mc2RfZmlsZV9jYWNo ZV9wdXJnZSBpcyBjYWxsZWQgd2hlbiB0aGUgc2VydmVyIGlzIHNodXR0aW5nIA0KPiA+ID4gPiA+ IGRvd24sIGluIHdoaWNoIGNhc2UsIHRlYXJpbmcgdGhpbmdzIGRvd24gaXMgZ2VuZXJhbGx5IGZp bmUsIGJ1dCANCj4gPiA+ID4gPiBpdCBhbHNvIGdldHMgY2FsbGVkIHdoZW4gdGhlIGV4cG9ydHMg Y2FjaGUgaXMgZmx1c2hlZC4NCj4gPiA+ID4NCj4gPiA+ID4gWWVhaC4uLiBjYWNoZSBmbHVzaCBp cyBwcm9iYWJseSB0aGUgY2FzZSB3ZSd2ZSBiZWVuIG1pc3NpbmcuDQo+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+ID4gSW5zdGVhZCBvZiB3YWxraW5nIHRoZSBjYWNoZSBhbmQgZnJlZWluZyBldmVy eXRoaW5nIA0KPiA+ID4gPiA+IHVuY29uZGl0aW9uYWxseSwgaGFuZGxlIGl0IHRoZSBzYW1lIGFz IHdoZW4gd2UgaGF2ZSBhIG5vdGlmaWNhdGlvbiBvZiBjb25mbGljdGluZyBhY2Nlc3MuDQo+ID4g PiA+ID4NCj4gPiA+ID4gPiBGaXhlczogYWMzYTI1ODVmMDE4ICgibmZzZDogcmV3b3JrIHJlZmNv dW50aW5nIGluIGZpbGVjYWNoZSIpDQo+ID4gPiA+ID4gUmVwb3J0ZWQtYnk6IFJ1YmVuIFZlc3Rl cmdhYXJkIDxydWJlbnZAZHJjbXIuZGs+DQo+ID4gPiA+ID4gUmVwb3J0ZWQtYnk6IFRvcmtpbCBT dmVuc2dhYXJkIDx0b3JraWxAZHJjbXIuZGs+DQo+ID4gPiA+ID4gUmVwb3J0ZWQtYnk6IFNoYWNo YXIgS2FnYW4gPHNrYWdhbkBudmlkaWEuY29tPg0KPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEpl ZmYgTGF5dG9uIDxqbGF5dG9uQGtlcm5lbC5vcmc+DQoNCkkgcmFuIG91ciB0ZXN0cyB3aXRoIHRo ZSBjb21taXQsIHRoZSBpc3N1ZSBkaWRuJ3Qgb2NjdXIuDQpUaGFua3MgZm9yIHRoZSBxdWljayBy ZXNwb25zZS4NCg0KPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+IGZzL25mc2QvZmlsZWNhY2hlLmMg fCA2MSANCj4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0NCj4gPiA+ID4gPiAxIGZpbGUgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwgMjQgZGVs ZXRpb25zKC0pDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiB2MjogdXNlIHRoZSBzYW1lIG1ldGhvZCB0 byBwdXJnZSBlbnRyaWVzIGZyb20gdGhlIGNhY2hlIGFzIHdlIGRvIHdoZW4NCj4gPiA+ID4gPiAg IHRoZXJlIGlzIGEgbm90aWZpY2F0aW9uIG9mIGNvbmZsaWN0aW5nIGFjY2Vzcy4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9mcy9uZnNkL2ZpbGVjYWNoZS5jIGIvZnMvbmZzZC9m aWxlY2FjaGUuYyBpbmRleCANCj4gPiA+ID4gPiA1OGFjOTNlN2U2ODAuLjM5N2FlMjEyYjk4ZCAx MDA2NDQNCj4gPiA+ID4gPiAtLS0gYS9mcy9uZnNkL2ZpbGVjYWNoZS5jDQo+ID4gPiA+ID4gKysr IGIvZnMvbmZzZC9maWxlY2FjaGUuYw0KPiA+ID4gPiA+IEBAIC02NjEsNiArNjYxLDQwIEBAIHN0 YXRpYyBzdHJ1Y3Qgc2hyaW5rZXIgICAgIG5mc2RfZmlsZV9zaHJpbmtlciA9IHsNCj4gPiA+ID4g PiAgICAgICAgIC5zZWVrcyA9IDEsDQo+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ICsvKioNCj4gPiA+ID4gPiArICogbWF5YmVfcXVldWVfbmZzZF9maWxlIC0gdHJ5IHRvIHVuaGFz aCBhbmQgcXVldWUgYSBuZnNkX2ZpbGUgDQo+ID4gPiA+ID4gK3RvIGJlIGZyZWVkDQo+ID4gPiA+ ID4gKyAqIEBuZjogbmZzZF9maWxlIHRvIGF0dGVtcHQgdG8gcXVldWUNCj4gPiA+ID4gPiArICog QGRpc3Bvc2U6IHByaXZhdGUgbGlzdCB0byBxdWV1ZSBzdWNjZXNzZnVsbHktcHV0IG9iamVjdHMN Cj4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiArICogVW5oYXNoIGFuIG5mc2RfZmlsZSwgdHJ5IHRv IGdldCBhIHJlZmVyZW5jZSB0byBpdCwgYW5kIHRoZW4gDQo+ID4gPiA+ID4gK3B1dCB0aGF0DQo+ ID4gPiA+ID4gKyAqIHJlZmVyZW5jZS4gSWYgaXQncyB0aGUgbGFzdCByZWZlcmVuY2UsIHF1ZXVl IGl0IHRvIHRoZSBkaXNwb3NlIGxpc3QuDQo+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gKyAqIFRo ZSBjYWxsZXIgTVVTVCBob2xkIHRoZSByY3VfcmVhZF9sb2NrKCkgIQ0KPiA+ID4gPg0KPiA+ID4g PiBfX25mc2RfZmlsZV9jYWNoZV9wdXJnZSgpIGlzbid0IGhvbGRpbmcgcmN1X3JlYWRfbG9jaygp LCBpdCdzIA0KPiA+ID4gPiBob2xkaW5nIHRoZSBuZnNkX211dGV4LiBJcyB0aGlzIGNvbW1lbnQg aW5jb3JyZWN0LCBvciBpcyBpdCBqdXN0IA0KPiA+ID4gPiB0b28gc3BlY2lmaWM/IE9yIGRpZCBJ IG1pc3Mgc29tZXRoaW5nIG9idmlvdXM/DQo+ID4gPiA+DQo+ID4gPg0KPiA+ID4gSXQncyBpbXBs aWNpdGx5IHRha2VuIGJ5IHJoYXNodGFibGVfd2Fsa19zdGFydCBhbmQgcmVsZWFzZWQgYnkgDQo+ ID4gPiByaGFzaHRhYmxlX3dhbGtfc3RvcC4NCj4gPiA+DQo+ID4gPiBGV0lXLCBpdCdkIGJlIG5p Y2UgaWYgdGhlcmUgd2VyZSBhIGxvY2tkZXBfYXNzZXJ0X2hlbGQgZXF1aXZhbGVudCANCj4gPiA+ IGZvciB0aGUgcmN1X3JlYWRfbG9jaygpIGhlcmUsIGJ1dCBJIGRpZG4ndCBzZWUgb25lIG9mIHRo b3NlLg0KPiA+DQo+ID4gV291bGQNCj4gPg0KPiA+IHN0YXRpYyB2b2lkDQo+ID4gbmZzZF9maWxl X2NvbmRfcXVldWUoc3RydWN0IG5mc2RfZmlsZSAqbmYsIHN0cnVjdCBsaXN0X2hlYWQgKmRpc3Bv c2UpDQo+ID4gICAgICAgX19tdXN0X2hvbGQoUkNVKQ0KPiA+IHsNCj4gPg0KPiA+IGRvIHRoZSB0 cmljaz8NCj4gPg0KPiANCj4gU2VlbXMgbGlrZSBhIHJlYXNvbmFibGUgdGhpbmcgdG8gYWRkLg0K PiANCj4gPg0KPiA+ID4gVGhlcmUgaXMgYQ0KPiA+ID4gcmN1X3JlYWRfbG9ja19oZWxkKCksIGJ1 dCBJIGRpZG4ndCBzZWUgYSBnb29kIHdheSB0byBnZXQgdGhhdCB0byANCj4gPiA+IGNvbXBpbGUg b3V0IHdoZW4gbG9ja2RlcCB3YXMgZGlzYWJsZWQuDQo+ID4gPg0KPiA+ID4gPiA+ICsgKi8NCj4g PiA+ID4gPiArc3RhdGljIHZvaWQNCj4gPiA+ID4gPiArbWF5YmVfcXVldWVfbmZzZF9maWxlKHN0 cnVjdCBuZnNkX2ZpbGUgKm5mLCBzdHJ1Y3QgbGlzdF9oZWFkIA0KPiA+ID4gPiA+ICsqZGlzcG9z ZSkNCj4gPiA+ID4NCj4gPiA+ID4gSSBwcmVmZXIgdGhlIG5hbWUgbmZzZF9maWxlX3RyeV90b19x dWV1ZSgpIG9yIG5mc2RfZmlsZV90cnlfdG9fZGlzcG9zZSgpLg0KPiA+ID4gPiBuZnNkX2ZpbGVf IHNob3VsZCBiZSB0aGUgcHJlZml4IHdoZXJlIHBvc3NpYmxlLiBVbmxlc3MgeW91J3JlIA0KPiA+ ID4gPiByZWRyaXZpbmcsIEkgY2FuIGZpeCB0aGF0Lg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ID4N Cj4gPiA+IFJlbmFtZSBhdCB3aWxsLg0KPiA+DQo+ID4gRG9uZSBhbmQgYXBwbGllZCB0byBuZnNk LWZpeGVzLCByZXBsYWNpbmcgdjEgb2YgdGhpcyBwYXRjaC4NCj4gPg0KPiANCj4gTEdUTS4gVGhh bmtzIQ0KPiANCj4gPg0KPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gKyAgICAgICBpbnQgZGVjcmVt ZW50ID0gMTsNCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKyAgICAgICAvKiBJZiB3ZSByYWNlZCB3 aXRoIHNvbWVvbmUgZWxzZSB1bmhhc2hpbmcsIGlnbm9yZSBpdCAqLw0KPiA+ID4gPiA+ICsgICAg ICAgaWYgKCFuZnNkX2ZpbGVfdW5oYXNoKG5mKSkNCj4gPiA+ID4gPiArICAgICAgICAgICAgICAg cmV0dXJuOw0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiArICAgICAgIC8qIElmIHdlIGNhbid0IGdl dCBhIHJlZmVyZW5jZSwgaWdub3JlIGl0ICovDQo+ID4gPiA+ID4gKyAgICAgICBpZiAoIW5mc2Rf ZmlsZV9nZXQobmYpKQ0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ICsgICAgICAgLyogRXh0cmEgZGVjcmVtZW50IGlmIHdlIHJlbW92ZSBm cm9tIHRoZSBMUlUgKi8NCj4gPiA+ID4gPiArICAgICAgIGlmIChuZnNkX2ZpbGVfbHJ1X3JlbW92 ZShuZikpDQo+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICsrZGVjcmVtZW50Ow0KPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiArICAgICAgIC8qIElmIHJlZmNvdW50IGdvZXMgdG8gMCwgdGhlbiBwdXQg b24gdGhlIGRpc3Bvc2UgbGlzdCAqLw0KPiA+ID4gPiA+ICsgICAgICAgaWYgKHJlZmNvdW50X3N1 Yl9hbmRfdGVzdChkZWNyZW1lbnQsICZuZi0+bmZfcmVmKSkgew0KPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICBsaXN0X2FkZCgmbmYtPm5mX2xydSwgZGlzcG9zZSk7DQo+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgIHRyYWNlX25mc2RfZmlsZV9jbG9zaW5nKG5mKTsNCj4gPiA+ID4gPiArICAgICAg IH0NCj4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiAvKioNCj4gPiA+ID4gPiAq IG5mc2RfZmlsZV9xdWV1ZV9mb3JfY2xvc2U6IHRyeSB0byBjbG9zZSBvdXQgYW55IG9wZW4gbmZz ZF9maWxlcyBmb3IgYW4gaW5vZGUNCj4gPiA+ID4gPiAqIEBpbm9kZTogICBpbm9kZSBvbiB3aGlj aCB0byBjbG9zZSBvdXQgbmZzZF9maWxlcw0KPiA+ID4gPiA+IEBAIC02ODgsMzAgKzcyMiwxMiBA QCBuZnNkX2ZpbGVfcXVldWVfZm9yX2Nsb3NlKHN0cnVjdCBpbm9kZSANCj4gPiA+ID4gPiAqaW5v ZGUsIHN0cnVjdCBsaXN0X2hlYWQgKmRpc3Bvc2UpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgICAg ICAgIHJjdV9yZWFkX2xvY2soKTsNCj4gPiA+ID4gPiAgICAgICAgIGRvIHsNCj4gPiA+ID4gPiAt ICAgICAgICAgICAgICAgaW50IGRlY3JlbWVudCA9IDE7DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICBuZiA9IHJoYXNodGFibGVfbG9va3VwKCZuZnNkX2ZpbGVfcmhhc2hf dGJsLCAma2V5LA0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG5mc2RfZmlsZV9yaGFzaF9wYXJhbXMpOw0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICBp ZiAoIW5mKQ0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIC8qIElmIHdlIHJhY2VkIHdpdGggc29tZW9u ZSBlbHNlIHVuaGFzaGluZywgaWdub3JlIGl0ICovDQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAg IGlmICghbmZzZF9maWxlX3VuaGFzaChuZikpDQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAg ICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gLQ0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAv KiBJZiB3ZSBjYW4ndCBnZXQgYSByZWZlcmVuY2UsIGlnbm9yZSBpdCAqLw0KPiA+ID4gPiA+IC0g ICAgICAgICAgICAgICBpZiAoIW5mc2RfZmlsZV9nZXQobmYpKQ0KPiA+ID4gPiA+IC0gICAgICAg ICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4gPiA+IC0NCj4gPiA+ID4gPiAtICAgICAg ICAgICAgICAgLyogRXh0cmEgZGVjcmVtZW50IGlmIHdlIHJlbW92ZSBmcm9tIHRoZSBMUlUgKi8N Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgaWYgKG5mc2RfZmlsZV9scnVfcmVtb3ZlKG5mKSkN Cj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICArK2RlY3JlbWVudDsNCj4gPiA+ID4g PiAtDQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgIC8qIElmIHJlZmNvdW50IGdvZXMgdG8gMCwg dGhlbiBwdXQgb24gdGhlIGRpc3Bvc2UgbGlzdCAqLw0KPiA+ID4gPiA+IC0gICAgICAgICAgICAg ICBpZiAocmVmY291bnRfc3ViX2FuZF90ZXN0KGRlY3JlbWVudCwgJm5mLT5uZl9yZWYpKSB7DQo+ ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgbGlzdF9hZGQoJm5mLT5uZl9scnUsIGRp c3Bvc2UpOw0KPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgIHRyYWNlX25mc2RfZmls ZV9jbG9zaW5nKG5mKTsNCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICBtYXliZV9xdWV1ZV9uZnNkX2ZpbGUobmYsIGRpc3Bvc2UpOw0KPiA+ID4g PiA+ICAgICAgICAgfSB3aGlsZSAoMSk7DQo+ID4gPiA+ID4gICAgICAgICByY3VfcmVhZF91bmxv Y2soKTsNCj4gPiA+ID4gPiB9DQo+ID4gPiA+ID4gQEAgLTkyOCwxMSArOTQ0LDggQEAgX19uZnNk X2ZpbGVfY2FjaGVfcHVyZ2Uoc3RydWN0IG5ldCAqbmV0KQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g ICAgICAgICAgICAgICAgIG5mID0gcmhhc2h0YWJsZV93YWxrX25leHQoJml0ZXIpOw0KPiA+ID4g PiA+ICAgICAgICAgICAgICAgICB3aGlsZSAoIUlTX0VSUl9PUl9OVUxMKG5mKSkgew0KPiA+ID4g PiA+IC0gICAgICAgICAgICAgICAgICAgICAgIGlmICghbmV0IHx8IG5mLT5uZl9uZXQgPT0gbmV0 KSB7DQo+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZnNkX2ZpbGVf dW5oYXNoKG5mKTsNCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5m c2RfZmlsZV9scnVfcmVtb3ZlKG5mKTsNCj4gPiA+ID4gPiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxpc3RfYWRkKCZuZi0+bmZfbHJ1LCAmZGlzcG9zZSk7DQo+ID4gPiA+ID4gLSAg ICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IGlmICghbmV0IHx8IG5mLT5uZl9uZXQgPT0gbmV0KQ0KPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbWF5YmVfcXVldWVfbmZzZF9maWxlKG5mLCANCj4gPiA+ID4gPiAr ICZkaXNwb3NlKTsNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICBuZiA9IHJoYXNo dGFibGVfd2Fsa19uZXh0KCZpdGVyKTsNCj4gPiA+ID4gPiAgICAgICAgICAgICAgICAgfQ0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiAyLjM5LjANCj4gPiA+ID4gPg0KPiA+ID4g Pg0KPiA+ID4gPiAtLQ0KPiA+ID4gPiBDaHVjayBMZXZlcg0KPiA+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPg0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBKZWZmIExheXRvbiA8amxheXRvbkBrZXJuZWwu b3JnPg0KPiA+DQo+ID4gLS0NCj4gPiBDaHVjayBMZXZlcg0KPiA+DQo+ID4NCj4gPg0KPiANCj4g LS0NCj4gSmVmZiBMYXl0b24gPGpsYXl0b25Aa2VybmVsLm9yZz4NCg0K