From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from azure-sdnproxy.icoremail.net (azure-sdnproxy.icoremail.net [13.75.44.102]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 69EAF360EFA for ; Fri, 21 Aug 2026 04:16:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=13.75.44.102 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787285821; cv=none; b=fpDXwhJ9U1iiI4z8RalV2YmxkCRiFXDvyQWBJc9iPZ+2i+MWowBkk32fGQoD5xLMLpph7cwTHnYukTtanky/nRMZP+GOJZbND/168nXuczrSnKcyld+syz5a3dsxKRbYw1xTUqiBVY+kVuPf9btsdxaF8gQTdwlAjuwXbZipHJ4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787285821; c=relaxed/simple; bh=RrXXq1WiyNn9wP9RK3pema77majpGIACQT7oKPUVwts=; h=Date:From:To:Cc:Subject:In-Reply-To:References:Content-Type: MIME-Version:Message-ID; b=QZ9lc7c6yNrJSqOn/pT/pJaUNkCyQnHxrTH9u4/Gj7Glg3qwRkkEN+vfxO4yLnYqgwrikW9GIh6qaQaemPLHU9eSE1clEDC0qtWzNeIHZ4ibu7SW13l7IXHT4gPT9FHM36jzEg+HUuICwcVZUM35f1SWwmxRjdLIE+6PiTVAfeo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zju.edu.cn; spf=pass smtp.mailfrom=zju.edu.cn; arc=none smtp.client-ip=13.75.44.102 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=zju.edu.cn Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=zju.edu.cn Received: from zju.edu.cn (unknown [10.190.129.65]) by mtasvr (Coremail) with SMTP id _____wBXaygt0Ydq76CwAA--.11119S3; Fri, 21 Aug 2026 12:16:45 +0800 (CST) Received: from stitch$zju.edu.cn ( [10.190.129.65] ) by ajax-webmail-mail-app3 (Coremail) ; Fri, 21 Aug 2026 12:16:45 +0800 (GMT+08:00) Date: Fri, 21 Aug 2026 12:16:45 +0800 (GMT+08:00) X-CM-HeaderCharset: UTF-8 From: "Jiacheng Xu" To: "Andreas Gruenbacher" Cc: gfs2@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v2 5/5] gfs2: protect status sysfs reads during teardown X-Priority: 3 X-Mailer: Coremail Webmail Server Version 2025.3-cmXT6 build 20260617(6f868824) Copyright (c) 2002-2026 www.mailtech.cn zju.edu.cn In-Reply-To: <6a91508.162bd.1a0228251e8.Coremail.stitch@zju.edu.cn> References: <6a91508.162bd.1a0228251e8.Coremail.stitch@zju.edu.cn> Content-Transfer-Encoding: base64 Content-Type: text/plain; charset=UTF-8 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-ID: <6ef42bba.162d3.1a022891a50.Coremail.stitch@zju.edu.cn> X-Coremail-Locale: zh_CN X-CM-TRANSID:zS_KCgDnsXUt0YdqMPCNBA--.25465W X-CM-SenderInfo: qtrxiiaqttimo62m3hxhgxhubq/1tbiAwQJC2qGXxcNSAAJst X-CM-DELIVERINFO: =?B?A03uKAXKKxbFmtjJiESix3B1w3tMoM3snk/k5SVzZVydjEqe1eefKHnLf95EnB4iem egW9p9QbwFO/M6dbbDVJYHFkbx64gIxmFjGKSPkVRyPlFbManS/GbhdGOH/gvpibxZ8+UZ AkA6TpbgLVMoi5/M2eZEQCCX+RsvKFgD3Ku+U0Jt4A8nOyuhRJBIKBgQUSWmpg== X-Coremail-Antispam: 1Uk129KBj93XoW3Ar4xCFWfGFy8CrWUWr45urX_yoWxXF18pF 4qvay5Cr4kGr17uayakF1rWa4rW3yfuFW7Jr4Sg3W3Zr9rtrsagFyIqFy0vryUCrsrCw1j qF40qasI9ryDGrXCm3ZEXasCq-sJn29KB7ZKAUJUUUUU529EdanIXcx71UUUUU7KY7ZEXa sCq-sGcSsGvfJ3Ic02F40EFcxC0VAKzVAqx4xG6I80ebIjqfuFe4nvWSU5nxnvy29KBjDU 0xBIdaVrnRJUUUPCb4IE77IF4wAFF20E14v26r1j6r4UM7CY07I20VC2zVCF04k26cxKx2 IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48v e4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI 0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AK xVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc804VCY07AIYIkI8VC2zVCFFI0UMc 02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2IY67AKxVWUAVWUtwAv7VC2z280aVAF wI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0Y48IcxkI7VAKI48JM4x0Y48IcxkI7V AKI48G6xCjnVAKz4kxM4xvF2IEb7IF0Fy264kE64k0F24lFcxC0VAYjxAxZF0Ex2IqxwCF 04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwC20s026c02F40E14v26r1j6r 18MI8I3I0E7480Y4vE14v26r106r1rMI8E67AF67kF1VAFwI0_Jrv_JF1lIxkGc2Ij64vI r41lIxAIcVC0I7IYx2IY67AKxVWUCVW8JwCI42IY6xIIjxv20xvEc7CjxVAFwI0_Gr0_Cr 1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMIIF0xvEx4A2jsIE14v26r1j6r4UMIIF0xvE x4A2jsIEc7CjxVAFwI0_Gr0_Gr1UMVCEFcxC0VAYjxAxZFUvcSsGvfC2KfnxnUUI43ZEXa 7IU8TCJJUUUUU== c3RhdHVzX3Nob3coKSByZWFkcyBzZF9qZGVzYyB3aXRob3V0IHN5bmNocm9uaXppbmcgd2l0aApn ZnMyX2ppbmRleF9mcmVlKCkuIFRoZSBqb3VybmFsIGRlc2NyaXB0b3IgY2FuIGJlIGNsZWFyZWQg YW5kIGZyZWVkCmFmdGVyIHRoZSBwb2ludGVyIGlzIHJlYWQgYnV0IGJlZm9yZSBpdHMgam91cm5h bCBpZCBpcyBkZXJlZmVyZW5jZWQuCgpTZXJpYWxpemUgdGhlIGNvbXBsZXRlIHN0YXR1cyBzbmFw c2hvdCB3aXRoIHRoZSBzdXBlcmJsb2NrIGxpZmV0aW1lIGFuZApyZXR1cm4gLUVBR0FJTiB3aGls ZSB0aGUgc3VwZXJibG9jayBpcyBiZWluZyBpbml0aWFsaXplZCBvciBzaHV0IGRvd24uCgpTaWdu ZWQtb2ZmLWJ5OiBKaWFjaGVuZyBYdSA8c3RpdGNoQHpqdS5lZHUuY24+Ci0tLQogZnMvZ2ZzMi9z eXMuYyB8IDE1ICsrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9mcy9nZnMyL3N5cy5jIGIvZnMvZ2ZzMi9z eXMuYwppbmRleCA5OTU5NmIxYWMwOGIuLmJmYTMyMjllNzU3ZCAxMDA2NDQKLS0tIGEvZnMvZ2Zz Mi9zeXMuYworKysgYi9mcy9nZnMyL3N5cy5jCkBAIC02NSw5ICs2NSwxOSBAQCBzdGF0aWMgc3Np emVfdCBpZF9zaG93KHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBjaGFyICpidWYpCiAKIHN0YXRpYyBz c2l6ZV90IHN0YXR1c19zaG93KHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBjaGFyICpidWYpCiB7Ci0g ICAgICAgdW5zaWduZWQgbG9uZyBmID0gc2RwLT5zZF9mbGFnczsKKyAgICAgICBzdHJ1Y3Qgc3Vw ZXJfYmxvY2sgKnNiID0gc2RwLT5zZF92ZnM7CisgICAgICAgdW5zaWduZWQgbG9uZyBmOwogICAg ICAgIHNzaXplX3QgczsKIAorICAgICAgIGlmICghZG93bl9yZWFkX3RyeWxvY2soJnNiLT5zX3Vt b3VudCkpCisgICAgICAgICAgICAgICByZXR1cm4gLUVBR0FJTjsKKworICAgICAgIGlmICghKHNi LT5zX2ZsYWdzICYgU0JfQUNUSVZFKSkgeworICAgICAgICAgICAgICAgcyA9IC1FQUdBSU47Cisg ICAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7CisgICAgICAgfQorCisgICAgICAgZiA9IHNk cC0+c2RfZmxhZ3M7CiAgICAgICAgcyA9IHN5c2ZzX2VtaXQoYnVmLAogICAgICAgICAgICAgICAg ICAgICAiSm91cm5hbCBDaGVja2VkOiAgICAgICAgICAlZFxuIgogICAgICAgICAgICAgICAgICAg ICAiSm91cm5hbCBMaXZlOiAgICAgICAgICAgICAlZFxuIgpAQCAtMTI1LDYgKzEzNSw5IEBAIHN0 YXRpYyBzc2l6ZV90IHN0YXR1c19zaG93KHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBjaGFyICpidWYp CiAgICAgICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZzZHAtPnNkX2xvZ19waW5uZWQpLAog ICAgICAgICAgICAgICAgICAgICBhdG9taWNfcmVhZCgmc2RwLT5zZF9sb2dfdGhyZXNoMSksCiAg ICAgICAgICAgICAgICAgICAgIGF0b21pY19yZWFkKCZzZHAtPnNkX2xvZ190aHJlc2gyKSk7CisK K291dF91bmxvY2s6CisgICAgICAgdXBfcmVhZCgmc2ItPnNfdW1vdW50KTsKICAgICAgICByZXR1 cm4gczsKIH0KIAotLSAKMi4yNS4xCgoKPiAtLS0tLeWOn+Wni+mCruS7ti0tLS0tCj4g5Y+R5Lu2 5Lq6OiAiSmlhY2hlbmcgWHUiIDxzdGl0Y2hAemp1LmVkdS5jbj4KPiDlj5HpgIHml7bpl7Q6MjAy Ni0wOC0yMSAxMjowOToyMSAo5pif5pyf5LqUKQo+IOaUtuS7tuS6ujogIkFuZHJlYXMgR3J1ZW5i YWNoZXIiIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgo+IOaKhOmAgTogZ2ZzMkBsaXN0cy5saW51eC5k ZXYsIGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKPiDkuLvpopg6IFtQQVRDSCB2MiAwLzVd IGdmczI6IHByb3RlY3Qgc3lzZnMgY2FsbGJhY2tzIGZyb20gc3VwZXJibG9jayB0ZWFyZG93bgo+ IAo+IFRoZSBHRlMyIHN5c2ZzIGZpbGVzIGJlY29tZSB2aXNpYmxlIGJlZm9yZSBmaWxsX3N1cGVy KCkgY29tcGxldGVzIGFuZAo+IHJlbWFpbiBwcmVzZW50IHVudGlsIGFmdGVyIGZpbGVzeXN0ZW0g cmVzb3VyY2VzIGhhdmUgYmVlbiByZWxlYXNlZC4KPiBDb25zZXF1ZW50bHksIGNhbGxiYWNrcyB0 aGF0IGFjY2VzcyBxdW90YSwgc3RhdGZzLCBnbG9jayBvciBqb3VybmFsCj4gc3RhdGUgY2FuIHJh Y2Ugd2l0aCBtb3VudCBmYWlsdXJlIHJvbGxiYWNrIG9yIHVubW91bnQgdGVhcmRvd24uCj4gCj4g VGhlIHF1b3RhIHJlZnJlc2ggZml4IHdhcyBvcmlnaW5hbGx5IHNlbnQgYXMgYSBzdGFuZGFsb25l IFtQQVRDSF0uIFRoaXMKPiB2ZXJzaW9uIGZvbGRzIGl0IGludG8gYSBjb21wbGV0ZSBzZXJpZXMg YW5kIGFkZHMgdGhlIGNvcnJlc3BvbmRpbmcKPiBsaWZldGltZSBwcm90ZWN0aW9uIGZvciB0aGUg b3RoZXIgYWZmZWN0ZWQgc3lzZnMgY2FsbGJhY2tzLgo+IAo+IEFsbCBjYWxsYmFja3MgdXNlIGRv d25fcmVhZF90cnlsb2NrKCkgb24gc191bW91bnQgYW5kIHZlcmlmeSBTQl9BQ1RJVkUuCj4gUmV0 dXJuaW5nIC1FQUdBSU4gYXZvaWRzIGRlYWRsb2NrIHdoZW4gbW91bnQgZmFpbHVyZSBvciB1bm1v dW50IGhvbGRzCj4gdGhlIHdyaXRlIHNpZGUgb2Ygc191bW91bnQgd2hpbGUgcmVtb3ZpbmcgdGhl IHN5c2ZzIGZpbGVzLgo+IAo+IENoYW5nZXMgaW4gdjI6Cj4gLSBGb2xkZWQgdGhlIG9yaWdpbmFs IHF1b3RhIHJlZnJlc2ggZml4IGludG8gYSBmaXZlLXBhdGNoIHNlcmllcy4KPiAtIEFkZGVkIHN0 YXRmc19zeW5jLCBxdW90YV9zeW5jLCBkZW1vdGVfcnEgYW5kIHN0YXR1cyBmaXhlcy4KPiAKPiBK aWFjaGVuZyBYdSAoNSk6Cj4gICBnZnMyOiBwcm90ZWN0IHF1b3RhIHJlZnJlc2ggZnJvbSBzdXBl cmJsb2NrIHRlYXJkb3duCj4gICBnZnMyOiBwcm90ZWN0IHN0YXRmcyBzeW5jIHN5c2ZzIGNhbGxi YWNrCj4gICBnZnMyOiBwcm90ZWN0IHF1b3RhIHN5bmMgc3lzZnMgY2FsbGJhY2sKPiAgIGdmczI6 IHByb3RlY3QgZGVtb3RlIHJlcXVlc3RzIGR1cmluZyBzdXBlcmJsb2NrIHRlYXJkb3duCj4gICBn ZnMyOiBwcm90ZWN0IHN0YXR1cyBzeXNmcyByZWFkcyBkdXJpbmcgdGVhcmRvd24KPiAKPiAgZnMv Z2ZzMi9xdW90YS5jIHwgMTkgKysrKysrKysrKysrKystCj4gIGZzL2dmczIvc3lzLmMgICB8IDY1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0KPiAgMiBm aWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+IAo+IAo+IGJh c2UtY29tbWl0OiAwZjIzZDU2ZjE3ZmRmYzdkYjY5ZDUxZjY0YzhiOTFiYmFiOTQ3YWE5Cj4gLS0g Cj4gMi4yNS4xCj4gCj4gPiAtLS0tLeWOn+Wni+mCruS7ti0tLS0tCj4gPiDlj5Hku7bkuro6ICJK aWFjaGVuZyBYdSIgPHN0aXRjaEB6anUuZWR1LmNuPgo+ID4g5Y+R6YCB5pe26Ze0OjIwMjYtMDgt MTkgMTU6MDE6MDcgKOaYn+acn+S4iSkKPiA+IOaUtuS7tuS6ujogIkFuZHJlYXMgR3J1ZW5iYWNo ZXIiIDxhZ3J1ZW5iYUByZWRoYXQuY29tPgo+ID4g5oqE6YCBOiBnZnMyQGxpc3RzLmxpbnV4LmRl diwgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+ID4g5Li76aKYOiBbUEFUQ0hdIGdmczI6 IEZpeCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gcXVvdGEgcmVmcmVzaAo+ID4gCj4gPiBU aGUgR0ZTMiBzeXNmcyBmaWxlcyBhcmUgcmVnaXN0ZXJlZCBiZWZvcmUgaW5pdF9pbm9kZXMoKSBj b21wbGV0ZXMuCj4gPiBDb25zZXF1ZW50bHksIHRoZSBxdW90YV9yZWZyZXNoX3VzZXIgYW5kIHF1 b3RhX3JlZnJlc2hfZ3JvdXAgc3lzZnMKPiA+IGF0dHJpYnV0ZXMgY2FuIGJlIGFjY2Vzc2VkIHdo aWxlIHNkcC0+c2RfcXVvdGFfaW5vZGUgaGFzIG5vdCBiZWVuCj4gPiBpbml0aWFsaXplZCB5ZXQu Cj4gPiAKPiA+IEEgY29uY3VycmVudCB3cml0ZSB0byBxdW90YV9yZWZyZXNoX3VzZXIgbWF5IHRo ZW4gY2FsbCBkb19nbG9jaygpLCB3aGljaAo+ID4gZGVyZWZlcmVuY2VzIHNkcC0+c2RfcXVvdGFf aW5vZGUuIFRoaXMgY2FuIHJlc3VsdCBpbiBhIE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSAKPiA+ IGluIGRvX2dsb2NrKCkuIFRoZSBzYW1lIGNhbGxiYWNrIGNhbiBhbHNvIHJhY2Ugd2l0aCBzdXBl cmJsb2NrCj4gPiB0ZWFyZG93biBhbmQgYWNjZXNzIGRhdGEgYWZ0ZXIgdGhlIGZpbGVzeXN0ZW0g aGFzIHN0YXJ0ZWQgdG8gc2h1dCBkb3duLgo+ID4gCj4gPiBNb3Zpbmcgc3lzZnMgcmVnaXN0cmF0 aW9uIGFmdGVyIGluaXRfaW5vZGVzKCkgd291bGQgYXZvaWQgdGhlIGluaXRpYWxpemF0aW9uCj4g PiB3aW5kb3csIGJ1dCBpcyBub3Qgc3VpdGFibGUgYmVjYXVzZSB0aGUgbG9jayBtYW5hZ2VyIG1h eSBuZWVkIHRoZSBHRlMyCj4gPiBzeXNmcyBmaWxlcyBkdXJpbmcgdGhlIHJlbWFpbmluZyBtb3Vu dCBzZXF1ZW5jZS4KPiA+IAo+ID4gU2VyaWFsaXplIGdmczJfcXVvdGFfcmVmcmVzaCgpIHdpdGgg dGhlIHN1cGVyYmxvY2sgbGlmZXRpbWUgaW5zdGVhZC4KPiA+IEFjcXVpcmUgc191bW91bnQgZm9y IHJlYWRpbmcgYmVmb3JlIGFjY2Vzc2luZyBxdW90YSBkYXRhLiBNb3VudCBmYWlsdXJlIGFuZAo+ ID4gdW5tb3VudCBwYXRocyBob2xkIHNfdW1vdW50IGZvciB3cml0aW5nLCBzbyB0aGlzIHByZXZl bnRzIHRoZSBjYWxsYmFjayBmcm9tCj4gPiBydW5uaW5nIHdoaWxlIHRoZSBzdXBlcmJsb2NrIGlz IGJlaW5nIGluaXRpYWxpemVkIG9yIGRlc3Ryb3llZC4KPiA+IAo+ID4gVXNlIGRvd25fcmVhZF90 cnlsb2NrKCkgaW5zdGVhZCBvZiBkb3duX3JlYWQoKSBiZWNhdXNlIHRoZSBtb3VudCBmYWlsdXJl Cj4gPiBwYXRoIG1heSBhbHJlYWR5IGhvbGQgc191bW91bnQgZm9yIHdyaXRpbmcgd2hpbGUgcmVt b3ZpbmcgdGhlIHN5c2ZzIGZpbGVzLgo+ID4gUmV0dXJuaW5nIC1FQUdBSU4gYWxsb3dzIHRoZSBz eXNmcyB3cml0ZSB0byBmYWlsIHdpdGhvdXQgaW50cm9kdWNpbmcgYQo+ID4gZGVhZGxvY2suCj4g PiAKPiA+IEFsc28gdmVyaWZ5IFNCX0FDVElWRSBhZnRlciBhY3F1aXJpbmcgdGhlIHJlYWQgbG9j aywgc2luY2UgdGhlIHN5c2ZzCj4gPiBhdHRyaWJ1dGVzIGJlY29tZSB2aXNpYmxlIGJlZm9yZSB0 aGUgc3VwZXJibG9jayBpcyBmdWxseSBhY3RpdmUuCj4gPiAKPiA+IFRoZSByZXByb2R1Y2VyIG9m IHRoZSBpc3N1ZSBpcyBhdHRhY2hlZC4gQWZ0ZXIgYXBwbHlpbmcgdGhpcyBwYXRjaCwgCj4gPiB0 aGUgcmVwcm9kdWNlciBubyBsb25nZXIgdHJpZ2dlcnMgdGhlIGtlcm5lbCBjcmFzaC4gCj4gPiAK PiA+IFNpZ25lZC1vZmYtYnk6IEppYWNoZW5nIFh1IDxzdGl0Y2hAemp1LmVkdS5jbj4KPiA+IFRl c3RlZC1ieTogSmlhY2hlbmcgWHUgPHN0aXRjaEB6anUuZWR1LmNuPgo+ID4gLS0tCj4gPiBmcy9n ZnMyL3F1b3RhLmMgfCAxOSArKysrKysrKysrKysrKysrKystCj4gPiAxIGZpbGUgY2hhbmdlZCwg MTggaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZnMv Z2ZzMi9xdW90YS5jIGIvZnMvZ2ZzMi9xdW90YS5jCj4gPiBpbmRleCAwMDFjOGIzOWNhNTUuLmQ1 MDUzNGVkOTM3OSAxMDA2NDQKPiA+IC0tLSBhL2ZzL2dmczIvcXVvdGEuYwo+ID4gKysrIGIvZnMv Z2ZzMi9xdW90YS5jCj4gPiBAQCAtMTM4NCwxOSArMTM4NCwzNiBAQCBpbnQgZ2ZzMl9xdW90YV9z eW5jKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIGludCB0eXBlKQo+ID4gCj4gPiBpbnQgZ2ZzMl9x dW90YV9yZWZyZXNoKHN0cnVjdCBnZnMyX3NiZCAqc2RwLCBzdHJ1Y3Qga3FpZCBxaWQpCj4gPiB7 Cj4gPiArICAgICBzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiID0gc2RwLT5zZF92ZnM7Cj4gPiAgICAg ICBzdHJ1Y3QgZ2ZzMl9xdW90YV9kYXRhICpxZDsKPiA+ICAgICAgIHN0cnVjdCBnZnMyX2hvbGRl ciBxX2doOwo+ID4gICAgICAgaW50IGVycm9yOwo+ID4gCj4gPiArICAgICAvKgo+ID4gKyAgICAg ICogVGhlIHN5c2ZzIGZpbGVzIGFyZSBjcmVhdGVkIGJlZm9yZSBmaWxsX3N1cGVyIGNvbXBsZXRl cy4gQXZvaWQKPiA+ICsgICAgICAqIGJsb2NraW5nIG9uIHNfdW1vdW50IGJlY2F1c2UgdGhlIG1v dW50IGZhaWx1cmUgcGF0aCByZW1vdmVzIHRoZQo+ID4gKyAgICAgICogc3lzZnMgZmlsZXMgd2hp bGUgaG9sZGluZyBpdCBmb3Igd3JpdGluZy4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgaWYgKCFk b3duX3JlYWRfdHJ5bG9jaygmc2ItPnNfdW1vdW50KSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJu IC1FQUdBSU47Cj4gPiArCj4gPiArICAgICBpZiAoIShzYi0+c19mbGFncyAmIFNCX0FDVElWRSkp IHsKPiA+ICsgICAgICAgICAgICAgZXJyb3IgPSAtRUFHQUlOOwo+ID4gKyAgICAgICAgICAgICBn b3RvIG91dF91bmxvY2s7Cj4gPiArICAgICB9Cj4gPiArCj4gPiAgICAgICBlcnJvciA9IHFkX2dl dChzZHAsIHFpZCwgJnFkKTsKPiA+ICAgICAgIGlmIChlcnJvcikKPiA+IC0gICAgICAgICAgICAg cmV0dXJuIGVycm9yOwo+ID4gKyAgICAgICAgICAgICBnb3RvIG91dF91bmxvY2s7Cj4gPiAKPiA+ ICAgICAgIGVycm9yID0gZG9fZ2xvY2socWQsIEZPUkNFLCAmcV9naCk7Cj4gPiAgICAgICBpZiAo IWVycm9yKQo+ID4gICAgICAgICAgICAgZ2ZzMl9nbG9ja19kcV91bmluaXQoJnFfZ2gpOwo+ID4g Cj4gPiAgICAgICBxZF9wdXQocWQpOwo+ID4gCj4gPiArb3V0X3VubG9jazoKPiA+ICsgICAgIHVw X3JlYWQoJnNiLT5zX3Vtb3VudCk7Cj4gPiAgICAgICByZXR1cm4gZXJyb3I7Cj4gPiB9Cg==