From mboxrd@z Thu Jan 1 00:00:00 1970 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D60E1C5B549 for ; Tue, 3 Jun 2025 01:28:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 354536B0383; Mon, 2 Jun 2025 21:28:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2DE666B0384; Mon, 2 Jun 2025 21:28:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1A6BC6B0385; Mon, 2 Jun 2025 21:28:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E5F036B0383 for ; Mon, 2 Jun 2025 21:28:48 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 63F1B5FDE8 for ; Tue, 3 Jun 2025 01:28:48 +0000 (UTC) X-FDA: 83512355136.13.39FAEBF Received: from mta21.hihonor.com (mta21.hihonor.com [81.70.160.142]) by imf29.hostedemail.com (Postfix) with ESMTP id 804C5120003 for ; Tue, 3 Jun 2025 01:28:45 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of tao.wangtao@honor.com designates 81.70.160.142 as permitted sender) smtp.mailfrom=tao.wangtao@honor.com; dmarc=pass (policy=none) header.from=honor.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748914126; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=b11HpLwHLKGoyRhC6omYm5l+VJ78T/SReelADlAQk9k=; b=jV5FIu+3cVMYe7K5SIxlPJ7IMabMH8HVJqXQr7UzzzqksAH0TPlsKz2IqPCvbA+vnfFcNK 5N/BHeh7MrCO8SOcxbafaL64MpNHp6/apgIhpY3DzaKSNPvNToLbmzIls9SGq0f7/3gELK sp8WVx0IXCD5u3lIR4xb/paE8j6aoIQ= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; spf=pass (imf29.hostedemail.com: domain of tao.wangtao@honor.com designates 81.70.160.142 as permitted sender) smtp.mailfrom=tao.wangtao@honor.com; dmarc=pass (policy=none) header.from=honor.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748914126; a=rsa-sha256; cv=none; b=6DPvmrhIjfDZ8bMe8SARRUpJIojTyhWr4vanfmV7lKw6GqyTYkQ/jg5y0gw3z6G8yZ4I8N HljridEwLCdGDqQjdvCUkbagqyuNTH8PS220kjKWX6abfYDCaKBJjqkBTbUcagHFnhsQrH K2Ba3m2JkbzeZq7P0AHKNmzFj9GYkog= Received: from w011.hihonor.com (unknown [10.68.20.122]) by mta21.hihonor.com (SkyGuard) with ESMTPS id 4bBCjT3K7WzYlBHq; Tue, 3 Jun 2025 09:26:37 +0800 (CST) Received: from a013.hihonor.com (10.68.22.170) by w011.hihonor.com (10.68.20.122) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 3 Jun 2025 09:28:39 +0800 Received: from a010.hihonor.com (10.68.16.52) by a013.hihonor.com (10.68.22.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.11; Tue, 3 Jun 2025 09:28:39 +0800 Received: from a010.hihonor.com ([fe80::7127:3946:32c7:6e]) by a010.hihonor.com ([fe80::7127:3946:32c7:6e%14]) with mapi id 15.02.1544.011; Tue, 3 Jun 2025 09:28:39 +0800 From: wangtao To: Amir Goldstein CC: "sumit.semwal@linaro.org" , "christian.koenig@amd.com" , "kraxel@redhat.com" , "vivek.kasireddy@intel.com" , "viro@zeniv.linux.org.uk" , "brauner@kernel.org" , "hughd@google.com" , "akpm@linux-foundation.org" , "benjamin.gaignard@collabora.com" , "Brian.Starkey@arm.com" , "jstultz@google.com" , "tjmercier@google.com" , "jack@suse.cz" , "baolin.wang@linux.alibaba.com" , "linux-media@vger.kernel.org" , "dri-devel@lists.freedesktop.org" , "linaro-mm-sig@lists.linaro.org" , "linux-kernel@vger.kernel.org" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , "wangbintian(BintianWang)" , yipengxiang , liulu 00013167 , "hanfeng 00012985" Subject: RE: [PATCH v3 1/4] fs: allow cross-FS copy_file_range for memory-backed files Thread-Topic: [PATCH v3 1/4] fs: allow cross-FS copy_file_range for memory-backed files Thread-Index: AQHb0U9QoCfM8mt6VkueWh2CiDJkn7PqqPyAgAX9ANA= Date: Tue, 3 Jun 2025 01:28:38 +0000 Message-ID: References: <20250530103941.11092-1-tao.wangtao@honor.com> <20250530103941.11092-2-tao.wangtao@honor.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.163.18.240] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Rspamd-Queue-Id: 804C5120003 X-Stat-Signature: mnjqadupqp7o11fsozt6bu6terbnueau X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1748914125-102709 X-HE-Meta: U2FsdGVkX1+3FsBkVxYPK2afJPuI2Ru6YvEEse646O4Aiwg3JLdYWO6xEH8cOCOsogurRQFbVns8mPsvxBWur4GMIKML9LKEeiny3I0vp1SHMxaH0AGdZh9eEPkwkZ1ShjkMt1ThMd/mYolF67FYaaCNyRo9I9LR3EKhWvMeUfuoHcgQ3DN1tpT4/RU77hWy6ZLLzAuUMFTiQEwV2wBq12Ic1qeOWgDWd9+GGNEYAoAqbb+g/srLiRxTvdaf3Y6HAcXUBxzu/6AJzQz5Xq5QnkHYlc3ZDr85sBXU4rfsJDvdA8NIw8p5KESaciDrYE5nt7pF4h4ydZI2ymoee/s/OZ8HbBQP5IoyskPm2Gpg1pCxkesywHm9Sepvgh4SRUkHjBALx8+1b9m0MdeuPaIYSBeS4SVmV4d6SPljbt0K9cZL2A8BnpiXi/JlnoOhO2SsNz/x5EVA1jWqq1ms2kM9yehpFyL/fk1qR1sHW86GBBkTQHovY38eSXZdGmsbVIvq1nD3ty6a96/GwBvBrXYCqUY21VHpPDaoC8Q+YZ35OfP1oHN7FKujib3bXUL5bxL1fckqpb3J0tK+HOt4QDimZS4kVSlJWy+khrkiDI7v0uO/1JORusOB9lVK0kLAq/Vzm7jqiB8ALfkZin9HHra18l0HOju2BYzBWx+i2HS3GTVdWu6r2j6Gp2/Y3PnQVA2DmVh51FR+ih9sMHIR9MXMFq/ohqhdbyR1PjF/O7YvNbTPfTmDcsq78AGAdm346mOUdcfxYlVXgJrefxDwsOCj7fzlU5n4rnAG4KJpgjGCk6X/noStq5ENPogGi8c1gWmKZXAIaNETNYTl3OEPOTpzoLTYm48c3GpKzG+CGj/S0MVyx7mGzOmgkvS0T/w4WQ0d6/ZFmXLmA0IaAq89j6n/nQP34Q+asPsqDqE9F60QhI3e5Kv6c4aVm2jdXmtRQ8Ex4FwnSPemVY4MIvegML8 G4ni3+WB Q5zOi8qJyt35VDuw9kztJOK/H8xyA6YLg6UKQdi7pEDLsg1HV1YBACtz1vO2lTGmzYkwILQ1KKmzj8IamjDCWmXsWTnPAD0jon0HtqHgdxM0osoC20HSA13ZykSCbe1TX375LK6eLX8l3hN2qHvTnBWePWz+cZKwrdSRGSF8yk+KtiVQLm2Ig+Sa7LFcB5xupE8RqTG/0AgJ1YfIYBJld4fIw1ljfTPLwechjKK1IkS9r+SPtvozJA8HZqRzd2e3T5Cga4jrCWGiTrywG0IhzySIwTFSMULYStvxahw9r9p4rv8k9cnNJs66l2iTQT2jgqLHACeOLSY3UVepma/HtOfwGqndV4aZYtofzpb3LRtsKpt4tfHQUh05wszw+Oii8bHc3XFytv20cO6K41++oXTSkHX82PF8/uCXn/2bJc/AHD0aTfbram94OmUKrWnMi2+nbZdEI3ydB+mmFwYKAZh5vXoTYCBlQgRoQr2Tv906eNSqoHNyy2+jhmJDre5xPcL79V9HoWrl6dwu4X5NzClhCLCzMXjE1jgkI/eRfAL8qRIOmRjcGDphzC+cSbxAYayPEib1WSY48m6vP8aCgYZhryqP1nDt/rqQCE4LYurJEHzSFQI44aFYmzTx8C7G/g3o6y1ttFmm11XnvbWvg7K+jTerzps17KZsVGCbJas754awvloEztqQHRlJu5u1vZJPV08A6jrjs7HQyl1yDIhjCWASgfe/+gnJ+Sv4xL2QHOUkAOmFPPmFDjz8aHd+v6Qacc5nHs+hljJ7By2thzZNFArtV2PJ9Zo0oJDa+PN429F1TPJ4bllXITvGbhvvNLgy8ydy2V/Aadz+4Ec6xRoG9A6TazXOtWA7K9ylmdxrO09+V/KF+m8uWXgW1X7KzrOEO+kr+RpoHFW8euEtWBeCPQtUzMGz1NefMGD6R5ZFuDS/ADxcExK5wdlut6aOaTH9MusiksKFWkqnKFy55Hmkn2lcQ n5tPhsjb E6JzYJR+oHQ= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQW1pciBHb2xkc3RlaW4g PGFtaXI3M2lsQGdtYWlsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBNYXkgMzAsIDIwMjUgOTo0NCBQ TQ0KPiBUbzogd2FuZ3RhbyA8dGFvLndhbmd0YW9AaG9ub3IuY29tPg0KPiBDYzogc3VtaXQuc2Vt d2FsQGxpbmFyby5vcmc7IGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbTsNCj4ga3JheGVsQHJlZGhh dC5jb207IHZpdmVrLmthc2lyZWRkeUBpbnRlbC5jb207IHZpcm9AemVuaXYubGludXgub3JnLnVr Ow0KPiBicmF1bmVyQGtlcm5lbC5vcmc7IGh1Z2hkQGdvb2dsZS5jb207IGFrcG1AbGludXgtZm91 bmRhdGlvbi5vcmc7DQo+IGJlbmphbWluLmdhaWduYXJkQGNvbGxhYm9yYS5jb207IEJyaWFuLlN0 YXJrZXlAYXJtLmNvbTsNCj4ganN0dWx0ekBnb29nbGUuY29tOyB0am1lcmNpZXJAZ29vZ2xlLmNv bTsgamFja0BzdXNlLmN6Ow0KPiBiYW9saW4ud2FuZ0BsaW51eC5hbGliYWJhLmNvbTsgbGludXgt bWVkaWFAdmdlci5rZXJuZWwub3JnOyBkcmktDQo+IGRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9y ZzsgbGluYXJvLW1tLXNpZ0BsaXN0cy5saW5hcm8ub3JnOyBsaW51eC0NCj4ga2VybmVsQHZnZXIu a2VybmVsLm9yZzsgbGludXgtZnNkZXZlbEB2Z2VyLmtlcm5lbC5vcmc7IGxpbnV4LQ0KPiBtbUBr dmFjay5vcmc7IHdhbmdiaW50aWFuKEJpbnRpYW5XYW5nKSA8YmludGlhbi53YW5nQGhvbm9yLmNv bT47DQo+IHlpcGVuZ3hpYW5nIDx5aXBlbmd4aWFuZ0Bob25vci5jb20+OyBsaXVsdSAwMDAxMzE2 Nw0KPiA8bGl1bHUubGl1QGhvbm9yLmNvbT47IGhhbmZlbmcgMDAwMTI5ODUgPGZlbmcuaGFuQGhv bm9yLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2MyAxLzRdIGZzOiBhbGxvdyBjcm9zcy1G UyBjb3B5X2ZpbGVfcmFuZ2UgZm9yIG1lbW9yeS0NCj4gYmFja2VkIGZpbGVzDQo+IA0KPiBPbiBG cmksIE1heSAzMCwgMjAyNSBhdCAxMjo0MOKAr1BNIHdhbmd0YW8gPHRhby53YW5ndGFvQGhvbm9y LmNvbT4gd3JvdGU6DQo+ID4NCj4gPiBNZW1vcnktYmFja2VkIGZpbGVzIGNhbiBvcHRpbWl6ZSBj b3B5IHBlcmZvcm1hbmNlIHZpYSBjb3B5X2ZpbGVfcmFuZ2UNCj4gPiBjYWxsYmFja3MuIENvbXBh cmVkIHRvIG1tYXAmcmVhZDogcmVkdWNlcyBHVVAgKGdldF91c2VyX3BhZ2VzKQ0KPiA+IG92ZXJo ZWFkOyB2cyBzZW5kZmlsZS9zcGxpY2U6IGVsaW1pbmF0ZXMgb25lIG1lbW9yeSBjb3B5OyBzdXBw b3J0cw0KPiA+IGRtYWJ1ZiB6ZXJvLWNvcHkgaW1wbGVtZW50YXRpb24uDQo+ID4NCj4gPiBTaWdu ZWQtb2ZmLWJ5OiB3YW5ndGFvIDx0YW8ud2FuZ3Rhb0Bob25vci5jb20+DQo+ID4gLS0tDQo+IA0K PiBIaSB3YW5ndGFvLA0KPiANCj4gTGV0IG1lIHJlcGhyYXNlIG15IHJlYWN0aW9uIGdlbnRseToN Cj4gUmVnYXJkbGVzcyBvZiB0aGUgcHJvcG9zZWQgQVBJIGV4dGVuc2lvbiwgYW5kIHJlZmVycmlu ZyB0byB0aGUNCj4gaW1wbGVtZW50YXRpb24gaXRzZWxmIC0gSSB3cm90ZSB0aGUgY3VycmVudCBj b2RlIGFuZCBJIGNhbiBiYXJlbHkgdW5kZXJzdGFuZA0KPiB0aGUgbG9naWMgZXZlcnkgdGltZSBJ IGNvbWUgYmFjayB0byByZWFkIGl0Lg0KPiANCj4gWW91ciBjaGFuZ2VzIG1ha2UgaXQgdG9vIG1l c3N5IHRvIGJlIHJldmlld2VkL21haW50YWluZWQuDQo+IEkgaGF2ZSBhIGZldyBzdWdnZXN0aW9u cyBmb3Igc2ltcGxpZmljYXRpb25zIChzZWUgYmVsb3cpLg0KPiANCj4gVGhlIGNvbXBsaWNhdGlv biBhcmlzZSBmcm9tIHRoZSBmYWN0IHRoYXQgbm9ybWFsbHkgdGhlIGRlc3RpbmF0aW9uIGZvcHMg YXJlDQo+IHVzZWQgdG8gY2FsbCB0aGUgY29weV9yYW5nZSgpIG1ldGhvZCBhbmQgdGhpcyBjYXNl IGlzIGEgZGV2aWF0aW9uIGZyb20gdGhpcw0KPiBzdGFuZGFyZCwgd2UgbmVlZCB0byBtYWtlIHRo ZSBjb3BlIHNpbXBsZXIgdXNpbmcgYSBoZWxwZXIgdG8gY2hvb3NlIHRoZQ0KPiBmb3BzIHRvIHVz ZS4NCj4gDQo+ID4gIGZzL3JlYWRfd3JpdGUuYyAgICB8IDcxICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tDQo+IC0tDQo+ID4gIGluY2x1ZGUvbGludXgvZnMuaCB8 ICAyICsrDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRp b25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZnMvcmVhZF93cml0ZS5jIGIvZnMvcmVhZF93 cml0ZS5jIGluZGV4DQo+ID4gYmIwZWQyNmEwYjNhLi41OTFjNmRiN2I3ODUgMTAwNjQ0DQo+ID4g LS0tIGEvZnMvcmVhZF93cml0ZS5jDQo+ID4gKysrIGIvZnMvcmVhZF93cml0ZS5jDQo+ID4gQEAg LTE0NjksNiArMTQ2OSwyMCBAQCBDT01QQVRfU1lTQ0FMTF9ERUZJTkU0KHNlbmRmaWxlNjQsIGlu dCwNCj4gb3V0X2ZkLA0KPiA+IGludCwgaW5fZmQsICB9ICAjZW5kaWYNCj4gPg0KPiA+ICtzdGF0 aWMgaW5saW5lIGJvb2wgaXNfY29weV9tZW1vcnlfZmlsZV90b19maWxlKHN0cnVjdCBmaWxlICpm aWxlX2luLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGZpbGUg KmZpbGVfb3V0KSB7DQo+ID4gKyAgICAgICByZXR1cm4gKGZpbGVfaW4tPmZfb3AtPmZvcF9mbGFn cyAmIEZPUF9NRU1PUllfRklMRSkgJiYNCj4gPiArICAgICAgICAgICAgICAgZmlsZV9pbi0+Zl9v cC0+Y29weV9maWxlX3JhbmdlICYmDQo+ID4gK2ZpbGVfb3V0LT5mX29wLT53cml0ZV9pdGVyOyB9 DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIGJvb2wgaXNfY29weV9maWxlX3RvX21lbW9yeV9m aWxlKHN0cnVjdCBmaWxlICpmaWxlX2luLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IGZpbGUgKmZpbGVfb3V0KSB7DQo+ID4gKyAgICAgICByZXR1cm4gKGZpbGVf b3V0LT5mX29wLT5mb3BfZmxhZ3MgJiBGT1BfTUVNT1JZX0ZJTEUpICYmDQo+ID4gKyAgICAgICAg ICAgICAgIGZpbGVfaW4tPmZfb3AtPnJlYWRfaXRlciAmJg0KPiA+ICtmaWxlX291dC0+Zl9vcC0+ Y29weV9maWxlX3JhbmdlOyB9DQo+ID4gKw0KPiANCj4gUGxlYXNlIGNvbWJpbmUgdGhhdCB0byBh IGhlbHBlcjoNCj4gY29uc3Qgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqbWVtb3J5X2NvcHlfZmls ZV9vcHMoc3RydWN0IGZpbGUgKmZpbGVfaW4sDQo+IHN0cnVjdCBmaWxlICpmaWxlX291dCkgd2hp Y2ggcmV0dXJucyBlaXRoZXIgZmlsZV9pbi0+Zl9vcCwgZmlsZV9vdXQtPmZfb3Agb3INCj4gTlVM TC4NCj4gDQpHcmVhdCBzdWdnZXN0aW9ucyEgSSdsbCB1cGRhdGUgdGhlbSBpbiB0aGUgbmV3IHBh dGNoIHZlcnNpb24gc29vbi4NCg0KPiANCj4gPiAgLyoNCj4gPiAgICogUGVyZm9ybXMgbmVjZXNz YXJ5IGNoZWNrcyBiZWZvcmUgZG9pbmcgYSBmaWxlIGNvcHkNCj4gPiAgICoNCj4gPiBAQCAtMTQ4 NCwxMSArMTQ5OCwyMyBAQCBzdGF0aWMgaW50IGdlbmVyaWNfY29weV9maWxlX2NoZWNrcyhzdHJ1 Y3QgZmlsZQ0KPiAqZmlsZV9pbiwgbG9mZl90IHBvc19pbiwNCj4gPiAgICAgICAgIHN0cnVjdCBp bm9kZSAqaW5vZGVfb3V0ID0gZmlsZV9pbm9kZShmaWxlX291dCk7DQo+ID4gICAgICAgICB1aW50 NjRfdCBjb3VudCA9ICpyZXFfY291bnQ7DQo+ID4gICAgICAgICBsb2ZmX3Qgc2l6ZV9pbjsNCj4g PiArICAgICAgIGJvb2wgc3BsaWNlID0gZmxhZ3MgJiBDT1BZX0ZJTEVfU1BMSUNFOw0KPiA+ICsg ICAgICAgYm9vbCBoYXNfbWVtb3J5X2ZpbGU7DQo+ID4gICAgICAgICBpbnQgcmV0Ow0KPiA+DQo+ ID4gLSAgICAgICByZXQgPSBnZW5lcmljX2ZpbGVfcndfY2hlY2tzKGZpbGVfaW4sIGZpbGVfb3V0 KTsNCj4gPiAtICAgICAgIGlmIChyZXQpDQo+ID4gLSAgICAgICAgICAgICAgIHJldHVybiByZXQ7 DQo+ID4gKyAgICAgICAvKiBTa2lwIGdlbmVyaWMgY2hlY2tzLCBhbGxvdyBjcm9zcy1zYiBjb3Bp ZXMgZm9yIGRtYS1idWYvdG1wZnMgKi8NCj4gPiArICAgICAgIGhhc19tZW1vcnlfZmlsZSA9IGlz X2NvcHlfbWVtb3J5X2ZpbGVfdG9fZmlsZShmaWxlX2luLCBmaWxlX291dCkgfHwNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgIGlzX2NvcHlfZmlsZV90b19tZW1vcnlfZmlsZShmaWxlX2lu LCBmaWxlX291dCk7DQo+ID4gKyAgICAgICBpZiAoIXNwbGljZSAmJiBoYXNfbWVtb3J5X2ZpbGUp IHsNCj4gPiArICAgICAgICAgICAgICAgaWYgKCEoZmlsZV9pbi0+Zl9tb2RlICYgRk1PREVfUkVB RCkgfHwNCj4gPiArICAgICAgICAgICAgICAgICAgICEoZmlsZV9vdXQtPmZfbW9kZSAmIEZNT0RF X1dSSVRFKSB8fA0KPiA+ICsgICAgICAgICAgICAgICAgICAgKGZpbGVfb3V0LT5mX2ZsYWdzICYg T19BUFBFTkQpKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUJBREY7DQo+ IA0KPiBJIGRvbid0IGxpa2UgdGhhdCB0aGlzIGJvdGggZHVwbGljYXRlcyBjb2RlIGFuZCBkb2Vz IG5vdCBjaGVjayBhbGwgdGhlIGNoZWNrcyBpbg0KPiBnZW5lcmljX2ZpbGVfcndfY2hlY2tzKCkg Zm9yIHRoZSBub24tbWVtb3J5IGZpbGUgc2lkZS4NCj4gSSBkbyBub3QgY3VycmVudGx5IGhhdmUg YSBzdWdnZXN0aW9uIGhvdyB0byBtYWtlIHRoaXMgbGVzcyBtZXNzeSwgbW9yZQ0KPiBodW1hbiBy ZWFkYWJsZSBhbmQgY29ycmVjdC4NClNpbmNlIGRtYWJ1ZiBmaWxlcyBhcmVuJ3QgcmVndWxhciBm aWxlcywgd2UnbGwgc2tpcCBnZW5lcmljX2ZpbGVfcndfY2hlY2tzLg0KQWRkaW5nIGFuIGVzc2Vu dGlhbF9maWxlX3J3X2NoZWNrcygpIGNvdWxkIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLg0KDQo+ IA0KPiA+ICsgICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gZ2VuZXJp Y19maWxlX3J3X2NoZWNrcyhmaWxlX2luLCBmaWxlX291dCk7DQo+ID4gKyAgICAgICAgICAgICAg IGlmIChyZXQpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4gPiAr ICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAgLyoNCj4gPiAgICAgICAgICAqIFdlIGFsbG93IHNv bWUgZmlsZXN5c3RlbXMgdG8gaGFuZGxlIGNyb3NzIHNiIGNvcHksIGJ1dA0KPiA+IHBhc3Npbmcg QEAgLTE1MDAsNyArMTUyNiw3IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19jb3B5X2ZpbGVfY2hlY2tz KHN0cnVjdA0KPiBmaWxlICpmaWxlX2luLCBsb2ZmX3QgcG9zX2luLA0KPiA+ICAgICAgICAgICog YW5kIHNldmVyYWwgZGlmZmVyZW50IHNldHMgb2YgZmlsZV9vcGVyYXRpb25zLCBidXQgdGhleSBh bGwgZW5kIHVwDQo+ID4gICAgICAgICAgKiB1c2luZyB0aGUgc2FtZSAtPmNvcHlfZmlsZV9yYW5n ZSgpIGZ1bmN0aW9uIHBvaW50ZXIuDQo+ID4gICAgICAgICAgKi8NCj4gPiAtICAgICAgIGlmIChm bGFncyAmIENPUFlfRklMRV9TUExJQ0UpIHsNCj4gPiArICAgICAgIGlmIChzcGxpY2UgfHwgaGFz X21lbW9yeV9maWxlKSB7DQo+ID4gICAgICAgICAgICAgICAgIC8qIGNyb3NzIHNiIHNwbGljZSBp cyBhbGxvd2VkICovDQo+IA0KPiBUaGlzIGNvbW1lbnQgaXMgbm90IGFjY3VyYXRlIC0gaXQgc2hv dWxkIHNheSAiY3Jvc3MgZnMtdHlwZSIsIGJlY2F1c2UgaXQgc2tpcHMNCj4gdGhlIHRlc3QgdGhh dCBjb21wYXJlcyB0aGUgLT5jb3B5X2ZpbGVfcmFuZ2UgcG9pbnRlcnMsIG5vdCB0aGUgc2IuDQo+ IElmIHlvdSBhcmUgbWFraW5nIGNoYW5nZXMgdG8gdGhpcyBmdW5jdGlvbiwgdGhpcyBzaG91bGQg YmUgY2xhcmlmaWVkLg0KPiANCldpbGwgZml4IHRoaXMgc2hvcnRseS4NCg0KPiA+ICAgICAgICAg fSBlbHNlIGlmIChmaWxlX291dC0+Zl9vcC0+Y29weV9maWxlX3JhbmdlKSB7DQo+ID4gICAgICAg ICAgICAgICAgIGlmIChmaWxlX2luLT5mX29wLT5jb3B5X2ZpbGVfcmFuZ2UgIT0gQEAgLTE1ODEs MjMNCj4gPiArMTYwNywzMCBAQCBzc2l6ZV90IHZmc19jb3B5X2ZpbGVfcmFuZ2Uoc3RydWN0IGZp bGUgKmZpbGVfaW4sIGxvZmZfdCBwb3NfaW4sDQo+ID4gICAgICAgICAgKiBzYW1lIHNiIHVzaW5n IGNsb25lLCBidXQgZm9yIGZpbGVzeXN0ZW1zIHdoZXJlIGJvdGggY2xvbmUgYW5kIGNvcHkNCj4g PiAgICAgICAgICAqIGFyZSBzdXBwb3J0ZWQgKGUuZy4gbmZzLGNpZnMpLCB3ZSBvbmx5IGNhbGwg dGhlIGNvcHkgbWV0aG9kLg0KPiA+ICAgICAgICAgICovDQo+ID4gLSAgICAgICBpZiAoIXNwbGlj ZSAmJiBmaWxlX291dC0+Zl9vcC0+Y29weV9maWxlX3JhbmdlKSB7DQo+ID4gLSAgICAgICAgICAg ICAgIHJldCA9IGZpbGVfb3V0LT5mX29wLT5jb3B5X2ZpbGVfcmFuZ2UoZmlsZV9pbiwgcG9zX2lu LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZpbGVfb3V0LCBwb3Nfb3V0LA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiwgZmxhZ3MpOw0KPiA+IC0gICAgICAgfSBlbHNl IGlmICghc3BsaWNlICYmIGZpbGVfaW4tPmZfb3AtPnJlbWFwX2ZpbGVfcmFuZ2UgJiYgc2FtZXNi KSB7DQo+ID4gLSAgICAgICAgICAgICAgIHJldCA9IGZpbGVfaW4tPmZfb3AtPnJlbWFwX2ZpbGVf cmFuZ2UoZmlsZV9pbiwgcG9zX2luLA0KPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmlsZV9vdXQsIHBvc19vdXQsDQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtaW5fdChsb2ZmX3QsIE1BWF9SV19DT1VOVCwgbGVuKSwNCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJFTUFQX0ZJTEVfQ0FOX1NIT1JURU4pOw0KPiA+IC0gICAgICAgICAg ICAgICAvKiBmYWxsYmFjayB0byBzcGxpY2UgKi8NCj4gPiAtICAgICAgICAgICAgICAgaWYgKHJl dCA8PSAwKQ0KPiA+ICsgICAgICAgaWYgKCFzcGxpY2UpIHsNCj4gPiArICAgICAgICAgICAgICAg aWYgKGlzX2NvcHlfbWVtb3J5X2ZpbGVfdG9fZmlsZShmaWxlX2luLCBmaWxlX291dCkpIHsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBmaWxlX2luLT5mX29wLT5jb3B5X2ZpbGVf cmFuZ2UoZmlsZV9pbiwgcG9zX2luLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmaWxlX291dCwgcG9zX291dCwgbGVuLCBmbGFncyk7DQo+ID4gKyAgICAgICAg ICAgICAgIH0gZWxzZSBpZiAoaXNfY29weV9maWxlX3RvX21lbW9yeV9maWxlKGZpbGVfaW4sIGZp bGVfb3V0KSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGZpbGVfb3V0LT5m X29wLT5jb3B5X2ZpbGVfcmFuZ2UoZmlsZV9pbiwgcG9zX2luLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlX291dCwgcG9zX291dCwgbGVuLCBmbGFncyk7 DQo+ID4gKyAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZmlsZV9vdXQtPmZfb3AtPmNvcHlfZmls ZV9yYW5nZSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IGZpbGVfb3V0LT5m X29wLT5jb3B5X2ZpbGVfcmFuZ2UoZmlsZV9pbiwgcG9zX2luLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZV9vdXQsIHBvc19v dXQsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4sIGZsYWdzKTsNCj4gPiArICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmaWxl X2luLT5mX29wLT5yZW1hcF9maWxlX3JhbmdlICYmIHNhbWVzYikgew0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIHJldCA9IGZpbGVfaW4tPmZfb3AtPnJlbWFwX2ZpbGVfcmFuZ2UoZmlsZV9p biwgcG9zX2luLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm aWxlX291dCwgcG9zX291dCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWluX3QobG9mZl90LCBNQVhfUldfQ09VTlQsIGxlbiksDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFTUFQX0ZJTEVfQ0FOX1NIT1JURU4pOw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIC8qIGZhbGxiYWNrIHRvIHNwbGljZSAqLw0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQgPD0gMCkNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNwbGljZSA9IHRydWU7DQo+ID4gKyAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAoc2FtZXNiKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogRmFsbGJhY2sg dG8gc3BsaWNlIGZvciBzYW1lIHNiIGNvcHkgZm9yDQo+ID4gKyBiYWNrd2FyZCBjb21wYXQgKi8N Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpY2UgPSB0cnVlOw0KPiA+IC0gICAgICAg fSBlbHNlIGlmIChzYW1lc2IpIHsNCj4gPiAtICAgICAgICAgICAgICAgLyogRmFsbGJhY2sgdG8g c3BsaWNlIGZvciBzYW1lIHNiIGNvcHkgZm9yIGJhY2t3YXJkIGNvbXBhdCAqLw0KPiA+IC0gICAg ICAgICAgICAgICBzcGxpY2UgPSB0cnVlOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+IA0KPiBU aGlzIGlzIHRoZSB3YXktdG9vLXVnbHktdG8tbGl2ZSBwYXJ0Lg0KPiBXYXMgcHJldHR5IGJhZCBi ZWZvcmUgYW5kIG5vdyBpdCBpcyB1bmFjY2VwdGFibGUuDQo+IHdheSB0b28gbXVjaCB1bm5lZWRl ZCBuZXN0aW5nIGFuZCB0b28gaGFyZCB0byBmb2xsb3cuDQo+IA0KPiBGaXJzdCBvZiBhbGwsIHBs ZWFzZSB1c2Ugc3BsaWNlIGxhYmVsIGFuZCBjYWxsIGdvdG8gc3BsaWNlIChiZWZvcmUgdGhlIGNv bW1lbnQpDQo+IGluc3RlYWQgb2YgYWRkaW5nIGFub3RoZXIgbmVzdGluZyBsZXZlbC4NCj4gSSB3 b3VsZCBkbyB0aGF0IGV2ZW4gaWYgbm90IGFkZGluZyBtZW1vcnkgZmQgY29weSBzdXBwb3J0Lg0K PiANCj4gU2Vjb25kLCBwbGVhc2Ugc3RvcmUgcmVzdWx0IG9mIG1lbV9mb3BzID0gbWVtb3J5X2Nv cHlfZmlsZV9vcHMoKSBhbmQNCj4gc3RhcnQgd2l0aDoNCj4gKyAgICBpZiAobWVtX2ZvcHMpIHsN Cj4gKyAgICAgICAgcmV0ID0gbWVtX2ZvcHMtPmNvcHlfZmlsZV9yYW5nZShmaWxlX2luLCBwb3Nf aW4sDQo+ICsNCj4gZmlsZV9vdXQsIHBvc19vdXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4sDQo+ICsgZmxhZ3Mp Ow0KPiAgKyAgIH0gZWxzZSBpZiAoZmlsZV9vdXQtPmZfb3AtPmNvcHlfZmlsZV9yYW5nZSkgeyAu Li4NCj4gDQo+IGFuZCB1cGRhdGUgdGhlIGNvbW1lbnQgYWJvdmUgdG8gc2F5IHRoYXQ6DQo+ICsg KiBGb3IgY29weSB0by9mcm9tIG1lbW9yeSBmZCwgd2UgYWx3YXkgY2FsbCB0aGUgY29weSBtZXRo b2Qgb2YgdGhlDQo+IG1lbW9yeSBmZC4NCj4gICAgKi8NCj4gDQo+IEkgdGhpbmsgdGhhdCBtYWtl cyB0aGUgY29kZSBub3QgbW9yZSB1Z2x5IHRoYW4gaXQgYWxyZWFkeSBpcy4NCj4gDQo+IFRoYW5r cywNCj4gQW1pci4NCkdvb2QgYWR2aWNlIC0gdGhhbmtzIGEgbG90IQ0KDQpSZWdhcmRzLA0KV2Fu Z3Rhby4NCg==