From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.groups.io with SMTP id smtpd.web10.4075.1608154992662794590 for ; Wed, 16 Dec 2020 13:43:12 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=dsHMscUS; spf=pass (domain: redhat.com, ip: 63.128.21.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608154991; h=from:from: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=NyYvjKfisLmTpv7hvdXUC3SLMTumFMv2Q08TBAcbl9U=; b=dsHMscUSPf537o++ufhHC6E3WDn1mX5dkTIW6p3Enri5QtNG0t1gYFmtxP4kBbyxhgIMy1 xGfQu57zsgdsacfZzGfYIy+xLFW4t3nJCUTpZiFJufSg5tzpwQTseY6XaUigd3ntq7xzaY EkeD6yE0ntFsTQ0t3Xr6dV2I1F+esAM= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-312-IKvaRMSgO4Gm1u0IXq1lLg-1; Wed, 16 Dec 2020 16:43:04 -0500 X-MC-Unique: IKvaRMSgO4Gm1u0IXq1lLg-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id CB6B8800D55; Wed, 16 Dec 2020 21:43:03 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-152.ams2.redhat.com [10.36.114.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 3690860C15; Wed, 16 Dec 2020 21:42:58 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io, virtio-fs@redhat.com, lersek@redhat.com Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [edk2 PATCH 15/48] OvmfPkg/VirtioFsDxe: flush, sync, release and forget in Close() / Delete() Date: Wed, 16 Dec 2020 22:10:52 +0100 Message-Id: <20201216211125.19496-16-lersek@redhat.com> In-Reply-To: <20201216211125.19496-1-lersek@redhat.com> References: <20201216211125.19496-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 VGhlIHR3byBtZW1iZXIgZnVuY3Rpb25zIHRoYXQgZnJlZSB0aGUgRUZJX0ZJTEVfUFJPVE9DT0wg b2JqZWN0IGFyZQpDbG9zZSgpIGFuZCBEZWxldGUoKS4gQmVmb3JlIHdlIGNyZWF0ZSBWSVJUSU9f RlNfRklMRSBvYmplY3RzIHdpdGgKRUZJX0ZJTEVfUFJPVE9DT0wuT3BlbigpIGxhdGVyIGluIHRo aXMgcGF0Y2ggc2VyaWVzLCBleHRlbmQgZWFjaCBvZiB0aGVzZQoiZGVzdHJ1Y3RvciIgZnVuY3Rp b25zIHRvIGdldCByaWQgb2YgdGhlIEZ1c2VIYW5kbGUgYW5kIE5vZGVJZCByZXNvdXJjZXMKcHJv cGVybHkgLS0gaW4gYSB3YXkgdGhhdCBtYXRjaGVzIGVhY2ggZnVuY3Rpb24ncyBvd24gcHVycG9z ZS4KCkZvciB0aGUgdGltZSBiZWluZywgVmlydGlvRnNTaW1wbGVGaWxlRGVsZXRlKCkgb25seSBn ZXRzIGEgcmVtaW5kZXIgYWJvdXQKaXRzIGNvcmUgdGFzayAobmFtZWx5LCByZW1vdmluZyB0aGUg ZmlsZSksIGFzIHRoZSBuZWVkZWQgbWFjaGluZXJ5IHdpbGwKYmVjb21lIG9ubHkgbGF0ZXIuIEJ1 dCB3ZSBjYW4gYWxyZWFkeSBvdXRsaW5lIHRoZSAidGFzayBsaXN0IiwgYW5kIGRlYWwKd2l0aCB0 aGUgRnVzZUhhbmRsZSBhbmQgTm9kZUlkIHJlc291cmNlcy4gVGhlICJ0YXNrIGxpc3QiIG9mClZp cnRpb0ZzU2ltcGxlRmlsZURlbGV0ZSgpIGlzIGRpZmZlcmVudCBmcm9tIHRoYXQgb2YKVmlydGlv RnNTaW1wbGVGaWxlQ2xvc2UoKSwgdGh1cyBib3RoIGRlc3RydWN0b3JzIGRpdmVyZ2UgYXQgdGhp cyBwb2ludC4KCkNjOiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAYXJtLmNvbT4KQ2M6 IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+CkNjOiBQaGlsaXBwZSBN YXRoaWV1LURhdWTDqSA8cGhpbG1kQHJlZGhhdC5jb20+ClJlZjogaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDk3ClNpZ25lZC1vZmYtYnk6IExhc3psbyBF cnNlayA8bGVyc2VrQHJlZGhhdC5jb20+Ci0tLQogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9G c0R4ZS5oICAgICAgICB8ICAxICsKIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5j ICAgICAgfCAzNCArKysrKysrKy0tLS0KIE92bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNEZWxl dGUuYyAgICAgfCA1NSArKysrKysrKysrKysrKysrKy0tLQogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9T aW1wbGVGc09wZW5Wb2x1bWUuYyB8ICAxICsKIDQgZmlsZXMgY2hhbmdlZCwgNzQgaW5zZXJ0aW9u cygrKSwgMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9W aXJ0aW9Gc0R4ZS5oIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5oCmluZGV4IDcx NTFhNjJiYjQyYi4uMWNiZDI3ZDhmYjUyIDEwMDY0NAotLS0gYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhl L1ZpcnRpb0ZzRHhlLmgKKysrIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5oCkBA IC0xMDUsMTYgKzEwNSwxNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAvLw0KIC8vIFByaXZhdGUgY29u dGV4dCBzdHJ1Y3R1cmUgdGhhdCBleHBvc2VzIEVGSV9GSUxFX1BST1RPQ09MIG9uIHRvcCBvZiBh biBvcGVuDQogLy8gRlVTRSBmaWxlIHJlZmVyZW5jZS4NCiAvLw0KIHR5cGVkZWYgc3RydWN0IHsN CiAgIFVJTlQ2NCAgICAgICAgICAgIFNpZ25hdHVyZTsNCiAgIEVGSV9GSUxFX1BST1RPQ09MIFNp bXBsZUZpbGU7DQogICBCT09MRUFOICAgICAgICAgICBJc0RpcmVjdG9yeTsNCisgIEJPT0xFQU4g ICAgICAgICAgIElzT3BlbkZvcldyaXRpbmc7DQogICBWSVJUSU9fRlMgICAgICAgICAqT3duZXJG czsNCiAgIExJU1RfRU5UUlkgICAgICAgIE9wZW5GaWxlc0VudHJ5Ow0KICAgLy8NCiAgIC8vIElu IHRoZSBGVVNFIHdpcmUgcHJvdG9jb2wsIGV2ZXJ5IHJlcXVlc3QgZXhjZXB0IEZVU0VfSU5JVCBy ZWZlcnMgdG8gYQ0KICAgLy8gZmlsZSwgbmFtZWx5IGJ5IHRoZSAiVklSVElPX0ZTX0ZVU0VfUkVR VUVTVC5Ob2RlSWQiIGZpZWxkOyB0aGF0IGlzLCBieSB0aGUNCiAgIC8vIGlub2RlIG51bWJlciBv ZiB0aGUgZmlsZS4gSG93ZXZlciwgc29tZSBvZiB0aGUgRlVTRSByZXF1ZXN0cyB0aGF0IHdlIG5l ZWQNCiAgIC8vIGZvciBzb21lIG9mIHRoZSBFRklfRklMRV9QUk9UT0NPTCBtZW1iZXIgZnVuY3Rp b25zIHJlcXVpcmUgYW4gb3BlbiBmaWxlDQogICAvLyBoYW5kbGUgKmluIGFkZGl0aW9uKiB0byB0 aGUgaW5vZGUgbnVtYmVyLiBGb3Igc2ltcGxpY2l0eSwgd2hlbmV2ZXIgYQ0KZGlmZiAtLWdpdCBh L092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5jIGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4 ZS9TaW1wbGVGc0Nsb3NlLmMKaW5kZXggMDFiYmVhZTIxNDczLi5iYzkxYWQ3MjZiMmMgMTAwNjQ0 Ci0tLSBhL092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5jCisrKyBiL092bWZQa2cv VmlydGlvRnNEeGUvU2ltcGxlRnNDbG9zZS5jCkBAIC0xOSwzMCArMTksNDYgQEAgVmlydGlvRnNT aW1wbGVGaWxlQ2xvc2UgKAogew0KICAgVklSVElPX0ZTX0ZJTEUgKlZpcnRpb0ZzRmlsZTsNCiAg IFZJUlRJT19GUyAgICAgICpWaXJ0aW9GczsNCiANCiAgIFZpcnRpb0ZzRmlsZSA9IFZJUlRJT19G U19GSUxFX0ZST01fU0lNUExFX0ZJTEUgKFRoaXMpOw0KICAgVmlydGlvRnMgICAgID0gVmlydGlv RnNGaWxlLT5Pd25lckZzOw0KIA0KICAgLy8NCi0gIC8vIEF0IHRoaXMgcG9pbnQsIHRoZSBpbXBs ZW1lbnRhdGlvbiBpcyBvbmx5IHN1aXRhYmxlIGZvciBjbG9zaW5nIHRoZQ0KLSAgLy8gVklSVElP X0ZTX0ZJTEUgdGhhdCB3YXMgY3JlYXRlZCBieSBWaXJ0aW9Gc09wZW5Wb2x1bWUoKS4NCisgIC8v IEFsbCBhY3Rpb25zIGluIHRoaXMgZnVuY3Rpb24gYXJlICJiZXN0IGVmZm9ydCI7IHRoZSBVRUZJ IHNwZWMgcmVxdWlyZXMNCisgIC8vIEVGSV9GSUxFX1BST1RPQ09MLkNsb3NlKCkgdG8gc3luYyBh bGwgZGF0YSB0byB0aGUgZGV2aWNlLCBidXQgaXQgYWxzbw0KKyAgLy8gcmVxdWlyZXMgRUZJX0ZJ TEVfUFJPVE9DT0wuQ2xvc2UoKSB0byByZWxlYXNlIHJlc291cmNlcyB1bmNvbmRpdGlvbmFsbHks DQorICAvLyBhbmQgdG8gcmV0dXJuIEVGSV9TVUNDRVNTIHVuY29uZGl0aW9uYWxseS4NCiAgIC8v DQotICBBU1NFUlQgKFZpcnRpb0ZzRmlsZS0+SXNEaXJlY3RvcnkpOw0KLSAgQVNTRVJUIChWaXJ0 aW9Gc0ZpbGUtPk5vZGVJZCA9PSBWSVJUSU9fRlNfRlVTRV9ST09UX0RJUl9OT0RFX0lEKTsNCi0g IC8vDQotICAvLyBDbG9zZSB0aGUgcm9vdCBkaXJlY3RvcnkuDQotICAvLw0KLSAgLy8gSWdub3Jl IGFueSBlcnJvcnMsIGJlY2F1c2UgRUZJX0ZJTEVfUFJPVE9DT0wuQ2xvc2UoKSBpcyByZXF1aXJl ZCB0bw0KLSAgLy8gcmVsZWFzZSB0aGUgRUZJX0ZJTEVfUFJPVE9DT0wgb2JqZWN0IHVuY29uZGl0 aW9uYWxseS4NCisgIC8vIEZsdXNoLCBzeW5jLCByZWxlYXNlLCBhbmQgKGlmIG5lZWRlZCkgZm9y Z2V0LiBJZiBhbnkgYWN0aW9uIGZhaWxzLCB3ZQ0KKyAgLy8gc3RpbGwgdHJ5IHRoZSBvdGhlcnMu DQogICAvLw0KKyAgaWYgKFZpcnRpb0ZzRmlsZS0+SXNPcGVuRm9yV3JpdGluZykgew0KKyAgICBp ZiAoIVZpcnRpb0ZzRmlsZS0+SXNEaXJlY3RvcnkpIHsNCisgICAgICBWaXJ0aW9Gc0Z1c2VGbHVz aCAoVmlydGlvRnMsIFZpcnRpb0ZzRmlsZS0+Tm9kZUlkLA0KKyAgICAgICAgVmlydGlvRnNGaWxl LT5GdXNlSGFuZGxlKTsNCisgICAgfQ0KKw0KKyAgICBWaXJ0aW9Gc0Z1c2VGc3luY0ZpbGVPckRp ciAoVmlydGlvRnMsIFZpcnRpb0ZzRmlsZS0+Tm9kZUlkLA0KKyAgICAgIFZpcnRpb0ZzRmlsZS0+ RnVzZUhhbmRsZSwgVmlydGlvRnNGaWxlLT5Jc0RpcmVjdG9yeSk7DQorICB9DQorDQogICBWaXJ0 aW9Gc0Z1c2VSZWxlYXNlRmlsZU9yRGlyIChWaXJ0aW9GcywgVmlydGlvRnNGaWxlLT5Ob2RlSWQs DQogICAgIFZpcnRpb0ZzRmlsZS0+RnVzZUhhbmRsZSwgVmlydGlvRnNGaWxlLT5Jc0RpcmVjdG9y eSk7DQogDQorICAvLw0KKyAgLy8gVmlydGlvRnNGaWxlLT5GdXNlSGFuZGxlIGlzIGdvbmUgYXQg dGhpcyBwb2ludCwgYnV0IFZpcnRpb0ZzRmlsZS0+Tm9kZUlkDQorICAvLyBpcyBzdGlsbCB2YWxp ZC4gSWYgd2UndmUga25vd24gVmlydGlvRnNGaWxlLT5Ob2RlSWQgZnJvbSBhIGxvb2t1cCwgdGhl bg0KKyAgLy8gbm93IHdlIHNob3VsZCBhc2sgdGhlIHNlcnZlciB0byBmb3JnZXQgaXQgKm9uY2Uq Lg0KKyAgLy8NCisgIGlmIChWaXJ0aW9Gc0ZpbGUtPk5vZGVJZCAhPSBWSVJUSU9fRlNfRlVTRV9S T09UX0RJUl9OT0RFX0lEKSB7DQorICAgIFZpcnRpb0ZzRnVzZUZvcmdldCAoVmlydGlvRnMsIFZp cnRpb0ZzRmlsZS0+Tm9kZUlkKTsNCisgIH0NCisNCiAgIC8vDQogICAvLyBPbmUgZmV3ZXIgZmls ZSBsZWZ0IG9wZW4gZm9yIHRoZSBvd25lciBmaWxlc3lzdGVtLg0KICAgLy8NCiAgIFJlbW92ZUVu dHJ5TGlzdCAoJlZpcnRpb0ZzRmlsZS0+T3BlbkZpbGVzRW50cnkpOw0KIA0KICAgRnJlZVBvb2wg KFZpcnRpb0ZzRmlsZSk7DQogICByZXR1cm4gRUZJX1NVQ0NFU1M7DQogfQ0KZGlmZiAtLWdpdCBh L092bWZQa2cvVmlydGlvRnNEeGUvU2ltcGxlRnNEZWxldGUuYyBiL092bWZQa2cvVmlydGlvRnNE eGUvU2ltcGxlRnNEZWxldGUuYwppbmRleCAzMjA5OTIzZDFlNDkuLmJiYWQ2NGJmNzg4NiAxMDA2 NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc0RlbGV0ZS5jCisrKyBiL092bWZQ a2cvVmlydGlvRnNEeGUvU2ltcGxlRnNEZWxldGUuYwpAQCAtMSwyOSArMSw2OCBAQAogLyoqIEBm aWxlDQogICBFRklfRklMRV9QUk9UT0NPTC5EZWxldGUoKSBtZW1iZXIgZnVuY3Rpb24gZm9yIHRo ZSBWaXJ0aW8gRmlsZXN5c3RlbSBkcml2ZXIuDQogDQogICBDb3B5cmlnaHQgKEMpIDIwMjAsIFJl ZCBIYXQsIEluYy4NCiANCiAgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2Ut UGF0ZW50DQogKiovDQogDQorI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPiAgICAgICAgICAg ICAvLyBSZW1vdmVFbnRyeUxpc3QoKQ0KKyNpbmNsdWRlIDxMaWJyYXJ5L01lbW9yeUFsbG9jYXRp b25MaWIuaD4gLy8gRnJlZVBvb2woKQ0KKw0KICNpbmNsdWRlICJWaXJ0aW9Gc0R4ZS5oIg0KIA0K IEVGSV9TVEFUVVMNCiBFRklBUEkNCiBWaXJ0aW9Gc1NpbXBsZUZpbGVEZWxldGUgKA0KICAgSU4g RUZJX0ZJTEVfUFJPVE9DT0wgKlRoaXMNCiAgICkNCiB7DQorICBWSVJUSU9fRlNfRklMRSAqVmly dGlvRnNGaWxlOw0KKyAgVklSVElPX0ZTICAgICAgKlZpcnRpb0ZzOw0KKyAgRUZJX1NUQVRVUyAg ICAgU3RhdHVzOw0KKw0KKyAgVmlydGlvRnNGaWxlID0gVklSVElPX0ZTX0ZJTEVfRlJPTV9TSU1Q TEVfRklMRSAoVGhpcyk7DQorICBWaXJ0aW9GcyAgICAgPSBWaXJ0aW9Gc0ZpbGUtPk93bmVyRnM7 DQorDQogICAvLw0KLSAgLy8gQXQgdGhpcyBwb2ludCwgdGhlIGltcGxlbWVudGF0aW9uIGlzIG9u bHkgc3VpdGFibGUgZm9yIGNsb3NpbmcgdGhlDQotICAvLyBWSVJUSU9fRlNfRklMRSB0aGF0IHdh cyBjcmVhdGVkIGJ5IFZpcnRpb0ZzT3BlblZvbHVtZSgpLg0KKyAgLy8gQWxsIGFjdGlvbnMgaW4g dGhpcyBmdW5jdGlvbiBhcmUgImJlc3QgZWZmb3J0IjsgdGhlIFVFRkkgc3BlYyByZXF1aXJlcw0K KyAgLy8gRUZJX0ZJTEVfUFJPVE9DT0wuRGVsZXRlKCkgdG8gcmVsZWFzZSByZXNvdXJjZXMgdW5j b25kaXRpb25hbGx5LiBJZiBhIHN0ZXANCisgIC8vIHJlbGF0ZWQgdG8gcmVtb3ZpbmcgdGhlIGZp bGUgZmFpbHMsIGl0J3Mgb25seSByZWZsZWN0ZWQgaW4gdGhlIHJldHVybg0KKyAgLy8gc3RhdHVz IChFRklfV0FSTl9ERUxFVEVfRkFJTFVSRSByYXRoZXIgdGhhbiBFRklfU1VDQ0VTUykuDQogICAv Lw0KLSAgLy8gQWN0dWFsbHkgZGVsZXRpbmcgdGhlIHJvb3QgZGlyZWN0b3J5IGlzIG5vdCBwb3Nz aWJsZSwgc28gd2UncmUgb25seSBnb2luZw0KLSAgLy8gdG8gcmVsZWFzZSByZXNvdXJjZXMsIGFu ZCByZXR1cm4gRUZJX1dBUk5fREVMRVRFX0ZBSUxVUkUuDQorICAvLyBSZWxlYXNlLCByZW1vdmUs IGFuZCAoaWYgbmVlZGVkKSBmb3JnZXQuIFdlIGRvbid0IHdhc3RlIHRpbWUgZmx1c2hpbmcgYW5k DQorICAvLyBzeW5jaW5nOyBpZiB0aGUgRUZJX0ZJTEVfUFJPVE9DT0wgdXNlciBjYXJlcyBlbm91 Z2gsIHRoZXkgc2hvdWxkIGtlZXAgdGhlDQorICAvLyBwYXJlbnQgZGlyZWN0b3J5IG9wZW4gdW50 aWwgYWZ0ZXIgdGhpcyBmdW5jdGlvbiBjYWxsIHJldHVybnMsIGFuZCB0aGVuDQorICAvLyBmb3Jj ZSBhIHN5bmMgb24gKnRoYXQqIEVGSV9GSUxFX1BST1RPQ09MIGluc3RhbmNlLCB1c2luZyBlaXRo ZXIgdGhlDQorICAvLyBGbHVzaCgpIG1lbWJlciBmdW5jdGlvbiwgb3IgdGhlIENsb3NlKCkgbWVt YmVyIGZ1bmN0aW9uLg0KICAgLy8NCi0gIC8vIEluIG9yZGVyIHRvIHJlbGVhc2UgcmVzb3VyY2Vz LCBWaXJ0aW9Gc1NpbXBsZUZpbGVDbG9zZSgpIGlzIGp1c3QgcmlnaHQNCi0gIC8vIGhlcmUuDQor ICAvLyBJZiBhbnkgYWN0aW9uIGZhaWxzIGJlbG93LCB3ZSBzdGlsbCB0cnkgdGhlIG90aGVycy4N CiAgIC8vDQotICBWaXJ0aW9Gc1NpbXBsZUZpbGVDbG9zZSAoVGhpcyk7DQotICByZXR1cm4gRUZJ X1dBUk5fREVMRVRFX0ZBSUxVUkU7DQorICBWaXJ0aW9Gc0Z1c2VSZWxlYXNlRmlsZU9yRGlyIChW aXJ0aW9GcywgVmlydGlvRnNGaWxlLT5Ob2RlSWQsDQorICAgIFZpcnRpb0ZzRmlsZS0+RnVzZUhh bmRsZSwgVmlydGlvRnNGaWxlLT5Jc0RpcmVjdG9yeSk7DQorDQorICAvLw0KKyAgLy8gVmlydGlv RnNGaWxlLT5GdXNlSGFuZGxlIGlzIGdvbmUgYXQgdGhpcyBwb2ludCwgYnV0IFZpcnRpb0ZzRmls ZS0+Tm9kZUlkDQorICAvLyBpcyBzdGlsbCB2YWxpZC4gQ29udGludWUgd2l0aCByZW1vdmluZyB0 aGUgZmlsZSBvciBkaXJlY3RvcnkuIFRoZSByZXN1bHQNCisgIC8vIG9mIHRoaXMgb3BlcmF0aW9u IGRldGVybWluZXMgdGhlIHJldHVybiBzdGF0dXMgb2YgdGhlIGZ1bmN0aW9uLg0KKyAgLy8NCisg IC8vIFRPRE8NCisgIC8vDQorICBTdGF0dXMgPSBFRklfV0FSTl9ERUxFVEVfRkFJTFVSRTsNCisN CisgIC8vDQorICAvLyBGaW5hbGx5LCBpZiB3ZSd2ZSBrbm93biBWaXJ0aW9Gc0ZpbGUtPk5vZGVJ ZCBmcm9tIGEgbG9va3VwLCB0aGVuIHdlIHNob3VsZA0KKyAgLy8gYWxzbyBhc2sgdGhlIHNlcnZl ciB0byBmb3JnZXQgaXQgKm9uY2UqLg0KKyAgLy8NCisgIGlmIChWaXJ0aW9Gc0ZpbGUtPk5vZGVJ ZCAhPSBWSVJUSU9fRlNfRlVTRV9ST09UX0RJUl9OT0RFX0lEKSB7DQorICAgIFZpcnRpb0ZzRnVz ZUZvcmdldCAoVmlydGlvRnMsIFZpcnRpb0ZzRmlsZS0+Tm9kZUlkKTsNCisgIH0NCisNCisgIC8v DQorICAvLyBPbmUgZmV3ZXIgZmlsZSBsZWZ0IG9wZW4gZm9yIHRoZSBvd25lciBmaWxlc3lzdGVt Lg0KKyAgLy8NCisgIFJlbW92ZUVudHJ5TGlzdCAoJlZpcnRpb0ZzRmlsZS0+T3BlbkZpbGVzRW50 cnkpOw0KKw0KKyAgRnJlZVBvb2wgKFZpcnRpb0ZzRmlsZSk7DQorICByZXR1cm4gU3RhdHVzOw0K IH0NCmRpZmYgLS1naXQgYS9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzT3BlblZvbHVtZS5j IGIvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1wbGVGc09wZW5Wb2x1bWUuYwppbmRleCA4YzE0NTdh NjhhYWQuLjY3ZDJkZWI2YmRmMiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9TaW1w bGVGc09wZW5Wb2x1bWUuYworKysgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1NpbXBsZUZzT3BlblZv bHVtZS5jCkBAIC01NywxNiArNTcsMTcgQEAgVmlydGlvRnNPcGVuVm9sdW1lICgKICAgVmlydGlv RnNGaWxlLT5TaW1wbGVGaWxlLlJlYWQgICAgICAgID0gVmlydGlvRnNTaW1wbGVGaWxlUmVhZDsN CiAgIFZpcnRpb0ZzRmlsZS0+U2ltcGxlRmlsZS5Xcml0ZSAgICAgICA9IFZpcnRpb0ZzU2ltcGxl RmlsZVdyaXRlOw0KICAgVmlydGlvRnNGaWxlLT5TaW1wbGVGaWxlLkdldFBvc2l0aW9uID0gVmly dGlvRnNTaW1wbGVGaWxlR2V0UG9zaXRpb247DQogICBWaXJ0aW9Gc0ZpbGUtPlNpbXBsZUZpbGUu U2V0UG9zaXRpb24gPSBWaXJ0aW9Gc1NpbXBsZUZpbGVTZXRQb3NpdGlvbjsNCiAgIFZpcnRpb0Zz RmlsZS0+U2ltcGxlRmlsZS5HZXRJbmZvICAgICA9IFZpcnRpb0ZzU2ltcGxlRmlsZUdldEluZm87 DQogICBWaXJ0aW9Gc0ZpbGUtPlNpbXBsZUZpbGUuU2V0SW5mbyAgICAgPSBWaXJ0aW9Gc1NpbXBs ZUZpbGVTZXRJbmZvOw0KICAgVmlydGlvRnNGaWxlLT5TaW1wbGVGaWxlLkZsdXNoICAgICAgID0g VmlydGlvRnNTaW1wbGVGaWxlRmx1c2g7DQogICBWaXJ0aW9Gc0ZpbGUtPklzRGlyZWN0b3J5ICAg ICAgICAgICAgPSBUUlVFOw0KKyAgVmlydGlvRnNGaWxlLT5Jc09wZW5Gb3JXcml0aW5nICAgICAg ID0gRkFMU0U7DQogICBWaXJ0aW9Gc0ZpbGUtPk93bmVyRnMgICAgICAgICAgICAgICAgPSBWaXJ0 aW9GczsNCiAgIFZpcnRpb0ZzRmlsZS0+Tm9kZUlkICAgICAgICAgICAgICAgICA9IFZJUlRJT19G U19GVVNFX1JPT1RfRElSX05PREVfSUQ7DQogICBWaXJ0aW9Gc0ZpbGUtPkZ1c2VIYW5kbGUgICAg ICAgICAgICAgPSBSb290RGlySGFuZGxlOw0KIA0KICAgLy8NCiAgIC8vIE9uZSBtb3JlIGZpbGUg b3BlbiBmb3IgdGhlIGZpbGVzeXN0ZW0uDQogICAvLw0KICAgSW5zZXJ0VGFpbExpc3QgKCZWaXJ0 aW9Gcy0+T3BlbkZpbGVzLCAmVmlydGlvRnNGaWxlLT5PcGVuRmlsZXNFbnRyeSk7DQotLSAKMi4x OS4xLjMuZzMwMjQ3YWE1ZDIwMQoKCg==