Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp846400ybl; Tue, 28 Jan 2020 13:21:46 -0800 (PST) X-Google-Smtp-Source: APXvYqxZ7gXKPaRlMSMb4+2b6yzMjOmyIArUGYPDFiiX/A8mEhyD9XUpFPaDzIck+VhkOBa1Whoc X-Received: by 2002:aca:1708:: with SMTP id j8mr4311557oii.166.1580246505894; Tue, 28 Jan 2020 13:21:45 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1580246505; cv=pass; d=google.com; s=arc-20160816; b=St4O7VSvBylTm9qnDBCnnj5XZScvZ8seM8JKI2jKKJQsHkL7i3tlERdX66EwkoxDuR RKlOhmSxGWt3AsdBqMYpkypAxnr6DD/8Cv36HJgWhbAmSPiWIpOYfHzVlbwjuqV71EGr VkaUS6w1pFCPRHf+qKDzKRf2KqRiOjBP27K9j+VUCKaAhE/wPL1ir5sewjEEsDWW470a xjjs4fbwCaG131zKMPtYTHVjvgN6JS1wBGEptI5vdKVr+PIalmIRcQJ/0bRO6txeYoqI I6Jy6ar/kiEIvg0OfqLpFEhTVKEko2r3zcR2JgQ4icch8HqkzXEsqULXN09e9jVYAiby eA9w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:content-language:accept-language:in-reply-to:references :message-id:date:thread-index:thread-topic:subject:cc:to:from :dkim-signature; bh=iO2S7qFXEJn82/URdeQcbCX3iOq3Ff0wvKrZu0yOTzk=; b=HdFBIUd3ga6klzRf+f0eiNZXpgesBH/nXSyBMmYhjOCtlNoUG0OICBneT9qCLIuGSY L8x8rSDdsqNlDQw5O2JXJR6SaHxjJZf8DC2RID/LZG7B64Bc8us9SmSE7oP4u820fxtI Wk86EUtK3QfT3LtdZ+pxu8+2ubTQqlQyqoIDEAo3OyA8SR/C06NPY21KtYJ+jP5S7Z8X Hf4mFOG2mK9s+0H3CBdq9HgPI5RC8I7ldj2eOfNzNX6LQJzbKvvn8wsqXddGAq8msqFn sRmT5rn1Nk1fkk5VcL6E4JaDgXno+1WLh7W6xqsVwhx4gs0u3yqHe2ndxy5/Lojs9QHR oHjQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=ORQBlxHx; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t16si1864948oth.38.2020.01.28.13.21.25; Tue, 28 Jan 2020 13:21:45 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@hammerspace.com header.s=selector2 header.b=ORQBlxHx; arc=pass (i=1 spf=pass spfdomain=hammerspace.com dkim=pass dkdomain=hammerspace.com dmarc=pass fromdomain=hammerspace.com); spf=pass (google.com: best guess record for domain of linux-nfs-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=hammerspace.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726266AbgA1VU6 (ORCPT + 99 others); Tue, 28 Jan 2020 16:20:58 -0500 Received: from mail-co1nam11on2120.outbound.protection.outlook.com ([40.107.220.120]:8192 "EHLO NAM11-CO1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726211AbgA1VU6 (ORCPT ); Tue, 28 Jan 2020 16:20:58 -0500 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Rz6WQYVXw8oYuv5MeOkiRu5xiD4eueEqUTJ59yWoRBUZx5qWsQMYbovPOFA6ltnDqr/tXkaYkeARUHHbdL0GbkdNzJYnacrFna1vg7qeZZTmU5YTITQQ1e2dYJ2tkttTc6MAy5SRq64Clzz/JIhBbA/QvHu+N/6u6bEOFQrnJQ8zF83qbcosOAUoj+7G9ZVil/7J2jS+nP7aSrD5uI42EKeea5z/mV/KtjuBo+D/yWztY9mhlYosM02ehsPbA4qFYYmip1OOVCQ9pUcbkBFyy1qkU0xhsikX4L+afDpk8zMnQRRRSkRr0oft2xrGDVIAjQtPJMa3mcP2roKHNy1ouQ== 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-SenderADCheck; bh=iO2S7qFXEJn82/URdeQcbCX3iOq3Ff0wvKrZu0yOTzk=; b=j2FtazcpV+2hHZRUKzjWbwx4HnP12hksEMMC09aZEUFkMmLthi6Cfo4ya18n8M81c1pcp7DcZXwYE+qpttrNFDwmYy0YgmLuLOrIHCvoPeHzl9zjxtN2NDKtUHgeHG6KCVMiR2AN0+JuoBizb58/7NwSkWDvdBmXtn7IUy5SbLsHywxERiR8IYv3XfsBCx2bk2gpn0w3MotF4M+mjh4pkUXd6vC7/FucqMz+eaXyO9DgrV2/vZjyJ+P+Ei3JIKoVRRU4NtWKrVFJiJjDmwVhASHlc3NOC/P9RD3eVAnKCJTsq+IfK8ujMNhf/eZ+ez2KhkacKM8EUBOPWkp8sYLYXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hammerspace.com; dmarc=pass action=none header.from=hammerspace.com; dkim=pass header.d=hammerspace.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hammerspace.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iO2S7qFXEJn82/URdeQcbCX3iOq3Ff0wvKrZu0yOTzk=; b=ORQBlxHx58UvWOI9ufIi+1wIU42JTKhdujMkR2AGXJnzKlISBBbMWhYietVcNX4bP7v7rpX8osh9wqnX/j50aaaC2pN3urFiQYEw5ydOsaZP11Sg4V5XbaEQrEYAZdQTAbAMkzG9bu2iTTZ683WuHxV2pL1mfnNgp3zYs4KWRbI= Received: from BN6PR1301MB2097.namprd13.prod.outlook.com (10.174.87.14) by BN6PR1301MB2114.namprd13.prod.outlook.com (10.174.90.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2686.15; Tue, 28 Jan 2020 21:20:45 +0000 Received: from BN6PR1301MB2097.namprd13.prod.outlook.com ([fe80::40e1:9ff5:2b8c:38bf]) by BN6PR1301MB2097.namprd13.prod.outlook.com ([fe80::40e1:9ff5:2b8c:38bf%5]) with mapi id 15.20.2686.019; Tue, 28 Jan 2020 21:20:45 +0000 From: Trond Myklebust To: "bcodding@redhat.com" , "Anna.Schumaker@netapp.com" CC: "linux-nfs@vger.kernel.org" Subject: Re: [PATCH v2] NFS: Revalidate once when holding a delegation Thread-Topic: [PATCH v2] NFS: Revalidate once when holding a delegation Thread-Index: AQHV1e9om4L2YbskUEmxr8p6E5Q5GagAOwsAgABKJQCAABCKAA== Date: Tue, 28 Jan 2020 21:20:45 +0000 Message-ID: References: <9e28aaaff4eae411e0a9d6b94b3d69f7514454cb.camel@hammerspace.com> In-Reply-To: Accept-Language: en-US, en-GB Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=trondmy@hammerspace.com; x-originating-ip: [68.40.189.247] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e3ba00ed-a69a-4680-d99a-08d7a437f03a x-ms-traffictypediagnostic: BN6PR1301MB2114: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 029651C7A1 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(136003)(346002)(366004)(376002)(396003)(39830400003)(199004)(189003)(2906002)(66946007)(6512007)(36756003)(91956017)(6486002)(66556008)(64756008)(76116006)(66446008)(15974865002)(66476007)(316002)(6506007)(110136005)(478600001)(4326008)(71200400001)(86362001)(26005)(186003)(2616005)(81166006)(8676002)(8936002)(5660300002)(81156014);DIR:OUT;SFP:1102;SCL:1;SRVR:BN6PR1301MB2114;H:BN6PR1301MB2097.namprd13.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: hammerspace.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: v5yF0d538HhlOSv0DwD2ttD8a/axedN/QdOgDVeODZFaJIzzXlRJkAS0deAz+xAEmNbHwgbfCZnf2I9woAwJF1gqa6pBBzdwx340PT8DqfdSIdmc0lj7qBCOyKKsXDrj12LqYaymIc0ujzQHU8IiGx4y2/QEhnWULmxQIB84iDs+eGAER0lb/0Dxd8R6l4w7z3iCajxa1+AWsNtaOjQrQ7KdT326VroyOIS1jWhx5/HyEOwny/XJgIiawa79JCsvLWq8fQ1X69fLj4ni8ZIBxDEqYiN5TOvBPC7OFIU88EJJUmcsTK1EB9812v/5OIxUy2sfmR04XJUODMNNNjO2XwOdMKdys9A7saz8xrTOrWd1G+QmkCvbKtUJ8WfaacVICwfnSXFu1m1u7fOo76DF1XVCra7v39K1/ti/H7wvwu5Rhc0I2TlaAMeIYPOBO+P6Grt/Jfm9XmHR6z4Ge3JRymT1atmkVS6dLLqfLNXTLxeOAVqHY+rPDCCf8s7dEpsivX65g+csOxMs9krblvR1aA== x-ms-exchange-antispam-messagedata: EEuEQLhIcLGJGnAHyzz70Rm2zem7Vd85JJwwns7DT4gWhwYBqqcdNPDdOx2Rwd5190CoTuy3rMF6sxRPE4U/D54jft0UWG/uLO77IJ5VUJTWEs9kgjO7jRkeq5pgmKLNn2/kjbvKGVKC0ict29VAgg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: hammerspace.com X-MS-Exchange-CrossTenant-Network-Message-Id: e3ba00ed-a69a-4680-d99a-08d7a437f03a X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Jan 2020 21:20:45.5070 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 0d4fed5c-3a70-46fe-9430-ece41741f59e X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: SMeXEmUUce18eVE38uDpjvPu+8Mdoe8WKcjHrum4mxrblrp8h3frk/hnpEF8kA4p3YJ4kGtN47FsV0TBbrQ54A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR1301MB2114 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org T24gVHVlLCAyMDIwLTAxLTI4IGF0IDE1OjIxIC0wNTAwLCBUcm9uZCBNeWtsZWJ1c3Qgd3JvdGU6 DQo+IE9uIFR1ZSwgMjAyMC0wMS0yOCBhdCAxMDo1NiAtMDUwMCwgVHJvbmQgTXlrbGVidXN0IHdy b3RlOg0KPiA+IE9uIFR1ZSwgMjAyMC0wMS0yOCBhdCAxMDoyNiAtMDUwMCwgQmVuamFtaW4gQ29k ZGluZ3RvbiB3cm90ZToNCj4gPiA+IElmIHdlIHNraXAgbG9va3VwIHJldmFsaWRhdGFpb24gd2hp bGUgaG9sZGluZyBhIGRlbGVnYXRpb24sIHdlDQo+ID4gPiBtaWdodA0KPiA+ID4gbWlzcw0KPiA+ ID4gdGhhdCB0aGUgZmlsZSBoYXMgY2hhbmdlZCBkaXJlY3RvcmllcyBvbiB0aGUgc2VydmVyLiAg VGhpcyBjYW4NCj4gPiA+IGhhcHBlbg0KPiA+ID4gaWYNCj4gPiA+IHRoZSBmaWxlIGlzIG1vdmVk IGluIGJldHdlZW4gdGhlIGNsaWVudCBjYWNoaW5nIGEgZGVudHJ5IGFuZA0KPiA+ID4gb2J0YWlu aW5nIGENCj4gPiA+IGRlbGVnYXRpb24uICBUaGF0IGNhbiBiZSByZXByb2R1Y2VkIG9uIGEgc2lu Z2xlIHN5c3RlbSB3aXRoIHRoaXMNCj4gPiA+IGJhc2g6DQo+ID4gPiANCj4gPiA+IG1rZGlyIC1w IC9leHBvcnRzL2RpcnsxLDJ9DQo+ID4gPiBleHBvcnRmcyAtbyBydyBsb2NhbGhvc3Q6L2V4cG9y dHMNCj4gPiA+IG1vdW50IC10IG5mcyAtb3Y0LjEsbm9hYyBsb2NhbGhvc3Q6L2V4cG9ydHMgL21u dC9sb2NhbGhvc3QNCj4gPiA+IA0KPiA+ID4gdG91Y2ggL2V4cG9ydHMvZGlyMS9mdWJhcg0KPiA+ ID4gDQo+ID4gPiBjYXQgL21udC9sb2NhbGhvc3QvZGlyMS9mdWJhcg0KPiA+ID4gbXYgL21udC9s b2NhbGhvc3QvZGlyezEsMn0vZnViYXINCj4gPiA+IA0KPiA+ID4gbXYgL2V4cG9ydHMvZGlyezIs MX0vZnViYXINCj4gPiA+IA0KPiA+ID4gY2F0IC9tbnQvbG9jYWxob3N0L2RpcjEvZnViYXINCj4g PiA+IG12IC9tbnQvbG9jYWxob3N0L2RpcnsxLDJ9L2Z1YmFyDQo+ID4gPiANCj4gPiA+IEluIHRo aXMgZXhhbXBsZSwgdGhlIGZpbmFsIGBtdmAgd2lsbCBzdGF0IHNvdXJjZSBhbmQgZGVzdGluYXRp b24NCj4gPiA+IGFuZA0KPiA+ID4gZmluZA0KPiA+ID4gdGhleSBhcmUgdGhlIHNhbWUgZGVudHJ5 Lg0KPiA+ID4gDQo+ID4gPiBUbyBmaXggdGhpcyB3aXRob3V0IGdpdmluZyB1cCB0aGUgaW5jcmVh c2VkIGxvb2t1cCBwZXJmb3JtYW5jZQ0KPiA+ID4gdGhhdA0KPiA+ID4gaG9sZGluZw0KPiA+ID4g YSBkZWxlZ2F0aW9uIHByb3ZpZGVzLCBsZXQncyByZXZhbGlkYXRlIHRoZSBkZW50cnkgb25seSBv bmNlDQo+ID4gPiBhZnRlcg0KPiA+ID4gb2J0YWluaW5nIGEgZGVsZWdhdGlvbiBieSBwbGFjaW5n IGEgbWFnaWMgdmFsdWUgaW4gdGhlIGRlbnRyeSdzDQo+ID4gPiB2ZXJpZmllci4NCj4gPiA+IA0K PiA+ID4gU3VnZ2VzdGVkLWJ5OiBUcm9uZCBNeWtsZWJ1c3QgPHRyb25kLm15a2xlYnVzdEBoYW1t ZXJzcGFjZS5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBCZW5qYW1pbiBDb2RkaW5ndG9uIDxi Y29kZGluZ0ByZWRoYXQuY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgZnMvbmZzL2Rpci5jIHwgMjIg KysrKysrKysrKysrKysrKysrKystLQ0KPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCAyMCBpbnNlcnRp b25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+ID4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZnMvbmZz L2Rpci5jIGIvZnMvbmZzL2Rpci5jDQo+ID4gPiBpbmRleCBlMTgwMDMzZTM1Y2YuLmU5ZDA3ZGNk NmQ2ZiAxMDA2NDQNCj4gPiA+IC0tLSBhL2ZzL25mcy9kaXIuYw0KPiA+ID4gKysrIGIvZnMvbmZz L2Rpci5jDQo+ID4gPiBAQCAtOTQ5LDYgKzk0OSw3IEBAIHN0YXRpYyBpbnQgbmZzX2ZzeW5jX2Rp cihzdHJ1Y3QgZmlsZSAqZmlscCwNCj4gPiA+IGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwNCj4g PiA+ICAJcmV0dXJuIDA7DQo+ID4gPiAgfQ0KPiA+ID4gIA0KPiA+ID4gKyNkZWZpbmUgTkZTX0RF TEVHQVRJT05fVkVSRiAweGZlZWRkZWFmDQo+ID4gPiAgLyoqDQo+ID4gPiAgICogbmZzX2ZvcmNl X2xvb2t1cF9yZXZhbGlkYXRlIC0gTWFyayB0aGUgZGlyZWN0b3J5IGFzIGhhdmluZw0KPiA+ID4g Y2hhbmdlZA0KPiA+ID4gICAqIEBkaXI6IHBvaW50ZXIgdG8gZGlyZWN0b3J5IGlub2RlDQo+ID4g PiBAQCAtOTYyLDYgKzk2Myw4IEBAIHN0YXRpYyBpbnQgbmZzX2ZzeW5jX2RpcihzdHJ1Y3QgZmls ZSAqZmlscCwNCj4gPiA+IGxvZmZfdCBzdGFydCwgbG9mZl90IGVuZCwNCj4gPiA+ICB2b2lkIG5m c19mb3JjZV9sb29rdXBfcmV2YWxpZGF0ZShzdHJ1Y3QgaW5vZGUgKmRpcikNCj4gPiA+ICB7DQo+ ID4gPiAgCU5GU19JKGRpciktPmNhY2hlX2NoYW5nZV9hdHRyaWJ1dGUrKzsNCj4gPiA+ICsJaWYg KE5GU19JKGRpciktPmNhY2hlX2NoYW5nZV9hdHRyaWJ1dGUgPT0gTkZTX0RFTEVHQVRJT05fVkVS RikNCj4gPiA+ICsJCU5GU19JKGRpciktPmNhY2hlX2NoYW5nZV9hdHRyaWJ1dGUrKzsNCj4gPiAN Cj4gPiBBY3R1YWxseSwgSSB0aGluayBhIHNsaWdodCBtb2RpZmljYXRpb24gdG8gdGhpcyBjYW4g bWlnaHQgYmUNCj4gPiBiZW5lZmljaWFsLiBJZiB3ZSBjaGFuZ2UgdG8gdGhlIGZvbGxvd2luZzoN Cj4gPiANCj4gPiAJaWYgKHVubGlrZWx5KE5GU19JKGRpciktPmNhY2hlX2NoYW5nZV9hdHRyaWJ1 dGUgPT0NCj4gPiBORlNfREVMRUdBVElPTl9WRVJGIC0gMSkpDQo+ID4gCQlORlNfSShkaXIpLT5j YWNoZV9jaGFuZ2VfYXR0cmlidXRlID0NCj4gPiBORlNfREVMRUdBVElPTl9WRVJGICsgMTsNCj4g PiAgCWVsc2UNCj4gPiAJCU5GU19JKGRpciktPmNhY2hlX2NoYW5nZV9hdHRyaWJ1dGUrKzsNCj4g PiANCj4gDQo+IC4uLmFjdHVhbGx5LCBpdCB3b3VsZCBiZSBuaWNlIHRvIGNsZWFuIHRoYXQgdXAg dG9vIHVzaW5nIGENCj4gZGVjbGFyYXRpb24NCj4gb2YgJ3N0cnVjdCBuZnNfaW5vZGUgKm5mc2kg PSBORlNfSShkaXIpKTsnDQo+IA0KPiA+IHRoZW4gdGhhdCBzaG91bGQgZW5zdXJlIHRob3NlIHJl YWRlcnMgb2YgY2FjaGVfY2hhbmdlX2F0dHJpYnV0ZQ0KPiA+IHRoYXQNCj4gPiBkbw0KPiA+IG5v dCB1c2UgbG9ja2luZyB3aWxsIGFsc28gbmV2ZXIgc2VlIHRoZSB2YWx1ZSBORlNfREVMRUdBVElP Tl9WRVJGDQo+ID4gKGFzc3VtaW5nIHRoYXQgZ2NjIGRvZXNuJ3Qgb3B0aW1pc2UgdGhlIGFib3Zl IHRvIHNvbWV0aGluZyB3ZWlyZCkuDQo+ID4gDQo+ID4gPiAgfQ0KPiA+ID4gIEVYUE9SVF9TWU1C T0xfR1BMKG5mc19mb3JjZV9sb29rdXBfcmV2YWxpZGF0ZSk7DQo+ID4gPiAgDQo+ID4gPiBAQCAt MTEzMyw2ICsxMTM2LDcgQEAgbmZzX2xvb2t1cF9yZXZhbGlkYXRlX2RlbnRyeShzdHJ1Y3QgaW5v ZGUNCj4gPiA+ICpkaXIsDQo+ID4gPiBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQo+ID4gPiAgCXN0 cnVjdCBuZnNfZmggKmZoYW5kbGU7DQo+ID4gPiAgCXN0cnVjdCBuZnNfZmF0dHIgKmZhdHRyOw0K PiA+ID4gIAlzdHJ1Y3QgbmZzNF9sYWJlbCAqbGFiZWw7DQo+ID4gPiArCXVuc2lnbmVkIGxvbmcg dmVyaWZpZXI7DQo+ID4gPiAgCWludCByZXQ7DQo+ID4gPiAgDQo+ID4gPiAgCXJldCA9IC1FTk9N RU07DQo+ID4gPiBAQCAtMTE1NCw2ICsxMTU4LDExIEBAIG5mc19sb29rdXBfcmV2YWxpZGF0ZV9k ZW50cnkoc3RydWN0IGlub2RlDQo+ID4gPiAqZGlyLCBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQo+ ID4gPiAgCWlmIChuZnNfcmVmcmVzaF9pbm9kZShpbm9kZSwgZmF0dHIpIDwgMCkNCj4gPiA+ICAJ CWdvdG8gb3V0Ow0KPiA+ID4gIA0KPiA+ID4gKwlpZiAoTkZTX1BST1RPKGRpciktPmhhdmVfZGVs ZWdhdGlvbihpbm9kZSwgRk1PREVfUkVBRCkpDQo+ID4gPiArCQl2ZXJpZmllciA9IE5GU19ERUxF R0FUSU9OX1ZFUkY7DQo+ID4gPiArCWVsc2UNCj4gPiA+ICsJCXZlcmlmaWVyID0gbmZzX3NhdmVf Y2hhbmdlX2F0dHJpYnV0ZShkaXIpOw0KPiA+ID4gKw0KPiA+ID4gIAluZnNfc2V0c2VjdXJpdHko aW5vZGUsIGZhdHRyLCBsYWJlbCk7DQo+ID4gPiAgCW5mc19zZXRfdmVyaWZpZXIoZGVudHJ5LCBu ZnNfc2F2ZV9jaGFuZ2VfYXR0cmlidXRlKGRpcikpOw0KPiANCj4gT29wcyEgV2hlbiByZXZpZXdp bmcsIEkgbWlzc2VkIHRoaXMuIFNob3VsZG4ndCB0aGUgYWJvdmUgYmUgY2hhbmdlZA0KPiB0bw0K PiBuZnNfc2V0X3ZlcmlmaWVyKGRlbnRyeSwgdmVyaWZpZXIpID8NCg0KLi4uYW5kIG9uIGEgc2lt aWxhciB2ZWluOiBuZnNfbG9va3VwX3JldmFsaWRhdGVfZGVsZWdhdGVkKCkgbmVlZHMgdG8NCmNo YW5nZSBzbyBhcyB0byBub3QgcmVzZXQgdGhlIHZlcmlmaWVyLi4uDQoNClNvcnJ5IGZvciBub3Qg Y2F0Y2hpbmcgdGhhdCBvbmUgZWl0aGVyLg0KDQo+IA0KPiA+ID4gIA0KPiA+ID4gQEAgLTExNjcs NiArMTE3NiwxNSBAQCBuZnNfbG9va3VwX3JldmFsaWRhdGVfZGVudHJ5KHN0cnVjdCBpbm9kZQ0K PiA+ID4gKmRpciwgc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KPiA+ID4gIAlyZXR1cm4gbmZzX2xv b2t1cF9yZXZhbGlkYXRlX2RvbmUoZGlyLCBkZW50cnksIGlub2RlLCByZXQpOw0KPiA+ID4gIH0N Cj4gPiA+ICANCj4gPiA+ICtzdGF0aWMgaW50IG5mc19kZWxlZ2F0aW9uX21hdGNoZXNfZGVudHJ5 KHN0cnVjdCBpbm9kZSAqZGlyLA0KPiA+ID4gKwkJCXN0cnVjdCBkZW50cnkgKmRlbnRyeSwgc3Ry dWN0IGlub2RlICppbm9kZSkNCj4gPiA+ICt7DQo+ID4gPiArCWlmIChORlNfUFJPVE8oZGlyKS0+ aGF2ZV9kZWxlZ2F0aW9uKGlub2RlLCBGTU9ERV9SRUFEKSAmJg0KPiA+ID4gKwkJZGVudHJ5LT5k X3RpbWUgPT0gTkZTX0RFTEVHQVRJT05fVkVSRikNCj4gPiA+ICsJCXJldHVybiAxOw0KPiA+ID4g KwlyZXR1cm4gMDsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4gPiAgLyoNCj4gPiA+ICAgKiBUaGlz IGlzIGNhbGxlZCBldmVyeSB0aW1lIHRoZSBkY2FjaGUgaGFzIGEgbG9va3VwIGhpdCwNCj4gPiA+ ICAgKiBhbmQgd2Ugc2hvdWxkIGNoZWNrIHdoZXRoZXIgd2UgY2FuIHJlYWxseSB0cnVzdCB0aGF0 DQo+ID4gPiBAQCAtMTE5Nyw3ICsxMjE1LDcgQEAgbmZzX2RvX2xvb2t1cF9yZXZhbGlkYXRlKHN0 cnVjdCBpbm9kZSAqZGlyLA0KPiA+ID4gc3RydWN0IGRlbnRyeSAqZGVudHJ5LA0KPiA+ID4gIAkJ Z290byBvdXRfYmFkOw0KPiA+ID4gIAl9DQo+ID4gPiAgDQo+ID4gPiAtCWlmIChORlNfUFJPVE8o ZGlyKS0+aGF2ZV9kZWxlZ2F0aW9uKGlub2RlLCBGTU9ERV9SRUFEKSkNCj4gPiA+ICsJaWYgKG5m c19kZWxlZ2F0aW9uX21hdGNoZXNfZGVudHJ5KGRpciwgZGVudHJ5LCBpbm9kZSkpDQo+ID4gPiAg CQlyZXR1cm4gbmZzX2xvb2t1cF9yZXZhbGlkYXRlX2RlbGVnYXRlZChkaXIsIGRlbnRyeSwNCj4g PiA+IGlub2RlKTsNCj4gPiA+ICANCj4gPiA+ICAJLyogRm9yY2UgYSBmdWxsIGxvb2sgdXAgaWZm IHRoZSBwYXJlbnQgZGlyZWN0b3J5IGhhcyBjaGFuZ2VkICovDQo+ID4gPiBAQCAtMTYzNSw3ICsx NjUzLDcgQEAgbmZzNF9kb19sb29rdXBfcmV2YWxpZGF0ZShzdHJ1Y3QgaW5vZGUNCj4gPiA+ICpk aXIsDQo+ID4gPiBzdHJ1Y3QgZGVudHJ5ICpkZW50cnksDQo+ID4gPiAgCWlmIChpbm9kZSA9PSBO VUxMKQ0KPiA+ID4gIAkJZ290byBmdWxsX3JldmFsOw0KPiA+ID4gIA0KPiA+ID4gLQlpZiAoTkZT X1BST1RPKGRpciktPmhhdmVfZGVsZWdhdGlvbihpbm9kZSwgRk1PREVfUkVBRCkpDQo+ID4gPiAr CWlmIChuZnNfZGVsZWdhdGlvbl9tYXRjaGVzX2RlbnRyeShkaXIsIGRlbnRyeSwgaW5vZGUpKQ0K PiA+ID4gIAkJcmV0dXJuIG5mc19sb29rdXBfcmV2YWxpZGF0ZV9kZWxlZ2F0ZWQoZGlyLCBkZW50 cnksDQo+ID4gPiBpbm9kZSk7DQo+ID4gPiAgDQo+ID4gPiAgCS8qIE5GUyBvbmx5IHN1cHBvcnRz IE9QRU4gb24gcmVndWxhciBmaWxlcyAqLw0KLS0gDQpUcm9uZCBNeWtsZWJ1c3QNCkNUTywgSGFt bWVyc3BhY2UgSW5jDQo0MzAwIEVsIENhbWlubyBSZWFsLCBTdWl0ZSAxMDUNCkxvcyBBbHRvcywg Q0EgOTQwMjINCnd3dy5oYW1tZXIuc3BhY2UNCg0K