From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 23B3D606A33B for ; Fri, 30 Oct 2026 16:09:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=xFqNESP8; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=PfRb7zlK DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Date:References: In-Reply-To:Cc:To:Subject:From:Message-ID:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Unsubscribe-Post:List-Owner; bh=5m8rT7fwA9MlzhRfuJSB1E9ysyg7FgxZ3LGJAX7lm84=; b=xFqNESP8V5g2PG1C4SoO7SUmny eUopQh656t1dMkx0fN0lNKCoPnICkPPjFOn6s4Mg5MJs8lwjE/J9dx7+5Xd+OrqYDsUqaB5QinRhW G/dUvph+VCCa7kZfEgR5wqFuT+4RhWukvaIcaA0BKuv8msBTr7dGOOFo7AA/7MqkNjP0XxUKena43 K+ssei4cZF3FQa6Dc2bYRMzeirKaKkn6EUbRyI6XlX5vUsnPG10VmmoNcltWZx5nb2GFz3oILqIHq kXesEev1epTVB5ltfo1reNVkg2//v5xgX410RQkSR3DA3NvLChv6an3iBsdPa+JGqsO+PVbhT5JWF NQfyMcCQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xMpAv-0000000C5aY-3xfo; Fri, 30 Oct 2026 16:09:53 +0000 Received: from tor.source.kernel.org ([2600:3c04:e001:324:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.100.1 #2 (Red Hat Linux)) id 1xMpAu-0000000C5a2-3aWr for linux-mtd@lists.infradead.org; Fri, 30 Oct 2026 16:09:52 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id 3F6CA605C6; Fri, 30 Oct 2026 16:09:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 67CC61F00A17; Fri, 30 Oct 2026 16:09:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1793376591; bh=bXdDkLDRoQfo0RDcxKVzZBJ1sPUWnSU51HFGyOfej4k=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=PfRb7zlK3p1uNnvx3Ov4FLVxblzsklQrJh/YO3Z8iV6j3TtkBBmecG96JvE2fAKfF aHF+WdNcgwv90aphI7rsDhbSi/3uRGFpZVhrii67yHqKCzmiznqsEVOOreNgteURKT bqVNkaIW8I97eyHWNS7sFZS5NyCQ2vVyp6NIzc0cpEfayy5QedTUhh2tyK0vxTw1c3 gNJiWlfeaGm/+A5ZJezGe3j6Ehy7VJ+JzYU2S7ACEB/B4YoVyqmJzYoP1p2jrxnaTh FuoZCaHWS+XJpdlLrEbv9AX/LK8HQaoOIK1TgrtZpBH7FACtFac79/2/2Lr/wQo7sD UloeYHujID5NA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v2 05/34] jfs: don't set SB_RDONLY after filesystem errors To: "Christian Brauner" , "Jan Kara" Cc: "Al Viro" , linux-ext4@vger.kernel.org, linux-mm@kvack.org, linux-efi@vger.kernel.org, linux-mtd@lists.infradead.org, "Karl Mehltretter" , dsterba@suse.cz, tytso@mit.edu, "Mark Fasheh" , "Joel Becker" , "Joseph Qi" In-Reply-To: <20261029-work-fs-sb_rdonly-v2-5-2f44f64f0b66@kernel.org> References: <20261029-work-fs-sb_rdonly-v2-0-2f44f64f0b66@kernel.org> <20261029-work-fs-sb_rdonly-v2-5-2f44f64f0b66@kernel.org> Date: Fri, 30 Oct 2026 16:09:51 +0000 X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev X-Archived-By: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" X-Spam-Status: No, score=-8.9 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg NSBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIGpmczogamZzX3JlY29u ZmlndXJlKCkgYWxsb3dzIHJ3IHJlbW91bnQgYW5kIG11dGF0ZXMgc2JpLT5mbGFnIGluIGVtZXJn ZW5jeV9ybwotIFtIaWdoXSBqZnM6IHVuY29tbWl0dGVkIGFub24gdGxvY2tzIG9uIGVycm9yIGlu IGV4dFJlY29yZCgpIGFuZCBleHRBbGxvYygpCi0gW0hpZ2hdIGpmczogdXBkYXRlU3VwZXIoKSBj bG9iYmVycyBGTV9ESVJUWSBpbiBqZnNfdW5mcmVlemUoKSB1bmRlciBKRlNfTk9JTlRFR1JJVFkK LSBbSGlnaF0gamZzOiByYWNlIGJldHdlZW4gamZzX3JlY29uZmlndXJlKCkgYW5kIGluLWZsaWdo dCBhbGxvY2F0aW9ucyB0cmlnZ2VycyBCVUdfT04KLSBbTWVkaXVtXSBqZnM6IGpmc19yZWNvbmZp Z3VyZSgpIGRvZXMgbm90IHJlY2hlY2sgc2JfZW1lcmdlbmN5X3JvKCkgYWZ0ZXIgc3luYwotLQoK Y29tbWl0IDJhMTYyMjAwZjc4MDUxYzYxMTA5MzhkY2RkM2IyNjVkNDU4Mzk5N2IKQXV0aG9yOiBD aHJpc3RpYW4gQnJhdW5lciA8YnJhdW5lckBrZXJuZWwub3JnPgoKamZzOiBkb24ndCBzZXQgU0Jf UkRPTkxZIGFmdGVyIGZpbGVzeXN0ZW0gZXJyb3JzCgpUaGlzIGNvbW1pdCByZXBsYWNlcyBkaXJl Y3Qgc2V0dGluZyBvZiBTQl9SRE9OTFkgaW4gamZzX2hhbmRsZV9lcnJvcigpIHdpdGgKc2Jfc2V0 X2VtZXJnZW5jeV9ybygpIHNvIHRoYXQgZXJyb3JzIG9jY3VycmluZyB3aGlsZSBmcm96ZW4gZG8g bm90IGNhdXNlCnRoYXdfc3VwZXIoKSB0byBza2lwIGpmc191bmZyZWV6ZSgpLiBJdCBhbHNvIHRy YWNrcyBsb2cgc2h1dGRvd24gc3RhdGUgaW4KSkZTX0ZMQUdTX0xPR19TSFVURE9XTiBhbmQgYWRk cyBzYl9lbWVyZ2VuY3lfcm8oKSBjaGVja3MgYWNyb3NzIEpGUwphbGxvY2F0aW9uLCBtZXRhZGF0 YSBtb2RpZmljYXRpb24sIGZyZWV6ZSwgc3luYywgYW5kIHJlbW91bnQgcGF0aHMuCgpMaW5rOiBo dHRwczovL2xvcmUua2VybmVsLm9yZy9yLzIwMjYwOTAzMDYwODU1LjQ2MTAtMS1rbWVobHRyZXR0 ZXJAZ21haWwuY29tCgo+IGRpZmYgLS1naXQgYS9mcy9qZnMvamZzX2V4dGVudC5jIGIvZnMvamZz L2pmc19leHRlbnQuYwo+IGluZGV4IDQ2NTI5YmNjODI5N2UuLmJhNTVlMGJiZWNkMjQgMTAwNjQ0 Cj4gLS0tIGEvZnMvamZzL2pmc19leHRlbnQuYwo+ICsrKyBiL2ZzL2pmcy9qZnNfZXh0ZW50LmMK WyAuLi4gXQo+IEBAIC0yNzAsNiArMjc2LDEwIEBAIGludCBleHRSZWNvcmQoc3RydWN0IGlub2Rl ICppcCwgeGFkX3QgKiB4cCkKPiAgCS8qIHVwZGF0ZSB0aGUgZXh0ZW50ICovCj4gIAlyYyA9IHh0 VXBkYXRlKDAsIGlwLCB4cCk7Cj4gIAo+ICsJLyogZ2V0IHRoZSBhbm9ueW1vdXMgdGxvY2tzIGNv bW1pdHRlZCwgbGlrZSBleHRBbGxvYygpIGRvZXMgKi8KPiArCWlmICghcmMpCj4gKwkJbWFya19p bm9kZV9kaXJ0eShpcCk7Cj4gKwo+ICAJbXV0ZXhfdW5sb2NrKCZKRlNfSVAoaXApLT5jb21taXRf bXV0ZXgpOwo+ICAJcmV0dXJuIHJjOwo+ICB9CgpbU2V2ZXJpdHk6IEhpZ2hdCldoYXQgaGFwcGVu cyBpbiBleHRSZWNvcmQoKSBhbmQgZXh0QWxsb2MoKSBpZiB4dFVwZGF0ZSgpLCB4dEV4dGVuZCgp LCBvcgp4dEluc2VydCgpIGZhaWxzIGFmdGVyIGFjcXVpcmluZyBhbiBhbm9ueW1vdXMgdGxvY2s/ CgpJbiB4dFVwZGF0ZSgpIGFuZCB4dEV4dGVuZCgpLCBCVF9NQVJLX0RJUlRZKG1wLCBpcCkgcnVu cyBiZWZvcmUgdHhMb2NrKDAsIGlwLAptcCwgLi4uKToKCmZzL2pmcy9qZnNfeHRyZWUuYzp4dFVw ZGF0ZSgpIHsKCS4uLgoJQlRfTUFSS19ESVJUWShtcCwgaXApOwoJLyoKCSAqIGFjcXVpcmUgdGxv Y2sgb2YgdGhlIGxlYWYgcGFnZSBjb250YWluaW5nIG9yaWdpbmFsIGVudHJ5CgkgKi8KCWlmICgh dGVzdF9jZmxhZyhDT01NSVRfTm9saW5rLCBpcCkpIHsKCQl0bGNrID0gdHhMb2NrKHRpZCwgaXAs IG1wLCB0bGNrWFRSRUUgfCB0bGNrR1JPVyk7CgkJeHRsY2sgPSAoc3RydWN0IHh0bG9jayAqKSAm IHRsY2stPmxvY2s7Cgl9CgkuLi4KCWlmICgoeG9mZiA+IG54b2ZmKSB8fAoJICAgIChueG9mZiAr IG54bGVuID4geG9mZiArIHhsZW4pKSB7CgkJWFRfUFVUUEFHRShtcCk7CgkJamZzX2Vycm9yKGlw LT5pX3NiLAoJCQkgICJuWEFEIGluIG5vdCBjb21wbGV0ZWx5IGNvbnRhaW5lZCB3aXRoaW4gWEFE XG4iKTsKCQlyZXR1cm4gLUVJTzsKCX0KCS4uLgp9CgpJZiBtcCBpcyBub3QgdGhlIHJvb3QgeHRy ZWUgcGFnZSwgQlRfTUFSS19ESVJUWSgpIGRvZXMgbm90IGNhbGwKbWFya19pbm9kZV9kaXJ0eShp cCkuIElmIG1wIGlzIHRoZSByb290IHh0cmVlIHBhZ2UgYW5kIHNiX2VtZXJnZW5jeV9ybygpIHdh cwphbHJlYWR5IHNldCBjb25jdXJyZW50bHksIEJUX01BUktfRElSVFkoKSBjYWxscyBqZnNfZGly dHlfaW5vZGUoKSB3aGlsZQpKRlNfSVAoaXApLT5hdGxoZWFkIGlzIHN0aWxsIDAsIHNvIGpmc19k aXJ0eV9pbm9kZSgpIHJldHVybnMgZWFybHkgd2l0aG91dApzZXR0aW5nIENPTU1JVF9EaXJ0eS4K CkltbWVkaWF0ZWx5IGFmdGVyd2FyZCwgdHhMb2NrKDAsIGlwLCAuLi4pIGF0dGFjaGVzIGFuIGFu b255bW91cyB0bG9jayB0bwpKRlNfSVAoaXApLT5hdGxoZWFkIGFuZCBxdWV1ZXMgSkZTX0lQKGlw KS0+YW5vbl9pbm9kZV9saXN0IG9udG8KVHhBbmNob3IuYW5vbl9saXN0LiBTaW1pbGFybHksIGlu IGV4dEFsbG9jKCksIHh0RXh0ZW5kKCkgYW5kIHh0SW5zZXJ0KCkgKHZpYQp4dFNwbGl0VXAoKSAt PiB4dFNwbGl0UGFnZSgpIG9yIHh0U3BsaXRSb290KCkpIGNhbGwgdHhMb2NrKDAsIGlwLCAuLi4p IGJlZm9yZQpzdWJzZXF1ZW50IG1ldGFwYWdlIHJlYWRzIG9yIGV4dGVudCBjaGVja3MgY2FuIGZh aWwgYW5kIGNhbGwgamZzX2Vycm9yKCkgLT4Kc2Jfc2V0X2VtZXJnZW5jeV9ybygpLgoKV2hlbiB4 dFVwZGF0ZSgpLCB4dEV4dGVuZCgpLCBvciB4dEluc2VydCgpIHJldHVybnMgYSBub24temVybyBy YywgZXh0UmVjb3JkKCkKc2tpcHMgbWFya19pbm9kZV9kaXJ0eShpcCkgYmVjYXVzZSBvZiB0aGUg IXJjIGNoZWNrLCBhbmQgZXh0QWxsb2MoKSByZXR1cm5zCmVhcmx5IGJlZm9yZSBtYXJrX2lub2Rl X2RpcnR5KGlwKToKCmZzL2pmcy9qZnNfZXh0ZW50LmM6ZXh0QWxsb2MoKSB7CgkuLi4KCWlmICh4 YWRkciAmJiB4YWRkciA9PSBueGFkZHIpCgkJcmMgPSB4dEV4dGVuZCgwLCBpcCwgeG9mZiwgKGlu dCkgbnhsZW4sIDApOwoJZWxzZQoJCXJjID0geHRJbnNlcnQoMCwgaXAsIHhmbGFnLCB4b2ZmLCAo aW50KSBueGxlbiwgJm54YWRkciwgMCk7CgoJaWYgKHJjKSB7CgkJZGJGcmVlKGlwLCBueGFkZHIs IG54bGVuKTsKCQlkcXVvdF9mcmVlX2Jsb2NrKGlwLCBueGxlbik7CgkJbXV0ZXhfdW5sb2NrKCZK RlNfSVAoaXApLT5jb21taXRfbXV0ZXgpOwoJCXJldHVybiAocmMpOwoJfQoJLi4uCgltYXJrX2lu b2RlX2RpcnR5KGlwKTsKfQoKV2l0aCBDT01NSVRfRGlydHkgbmV2ZXIgc2V0IG9uIGlwIChhbmQg amZzX2ZyZWV6ZSgpIHNraXBwaW5nIHR4UXVpZXNjZSgpIG9uY2UKc2JfZW1lcmdlbmN5X3JvKCkg aXMgc2V0KSwgY291bGQgZXZpY3RpbmcgdGhlIGlub2RlIHRyaWdnZXIKQlVHX09OKCFsaXN0X2Vt cHR5KCZqaS0+YW5vbl9pbm9kZV9saXN0KSkgaW4gamZzX2V2aWN0X2lub2RlKCk/Cgo+IGRpZmYg LS1naXQgYS9mcy9qZnMvc3VwZXIuYyBiL2ZzL2pmcy9zdXBlci5jCj4gaW5kZXggODE4MGQ4M2Qz M2ZlZC4uYmJhYmExNDgyMWU2NCAxMDA2NDQKPiAtLS0gYS9mcy9qZnMvc3VwZXIuYwo+ICsrKyBi L2ZzL2pmcy9zdXBlci5jClsgLi4uIF0KPiBAQCAtMzY3LDYgKzM2OCwxMSBAQCBzdGF0aWMgaW50 IGpmc19yZWNvbmZpZ3VyZShzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCj4gIAlpbnQgZmxhZyA9IGN0 eC0+ZmxhZzsKPiAgCWludCByZXQ7Cj4gIAo+ICsJLyogRG9uJ3QgcmVzaXplIGJhc2VkIG9uIGEg YmxvY2sgbWFwIHdlIGRvbid0IHRydXN0IGFmdGVyIGFuIGVycm9yLiAqLwo+ICsJaWYgKGN0eC0+ cmVzaXplICYmIHNiX2VtZXJnZW5jeV9ybyhzYikpCj4gKwkJcmV0dXJuIC1FUk9GUzsKPiArCj4g KwkvKiBBZnRlciBhbiBlcnJvciB0aGlzIG9ubHkgY29tbWl0cyB3aGF0IHdhcyBxdWV1ZWQgYmVm b3JlIGl0LiAqLwo+ICAJc3luY19maWxlc3lzdGVtKHNiKTsKPiAgCj4gIAkvKiBUcmFuc2ZlciBy ZXN1bHRzIG9mIHBhcnNpbmcgdG8gdGhlIHNiaSAqLwoKW1NldmVyaXR5OiBNZWRpdW1dCklmIGEg ZmlsZXN5c3RlbSBlcnJvciBvY2N1cnMgd2hpbGUgc3luY19maWxlc3lzdGVtKHNiKSBpcyBmbHVz aGluZyBkaXJ0eSBwYWdlcwpvciBpbm9kZXMgZHVyaW5nIGEgcmVzaXplIHJlbW91bnQgKG9yIGNv bmN1cnJlbnRseSB3aGlsZSBzeW5jX2ZpbGVzeXN0ZW0oc2IpCmlzIHJ1bm5pbmcpLCBqZnNfaGFu ZGxlX2Vycm9yKCkgbm93IHNldHMgc2Jfc2V0X2VtZXJnZW5jeV9ybyhzYikgaW5zdGVhZCBvZgpT Ql9SRE9OTFkuCgpXaGVuIGV4ZWN1dGlvbiByZWFjaGVzIHRoZSBjdHgtPnJlc2l6ZSBibG9jayBp biBqZnNfcmVjb25maWd1cmUoKToKCmZzL2pmcy9zdXBlci5jOmpmc19yZWNvbmZpZ3VyZSgpIHsK CS4uLgoJaWYgKGN0eC0+cmVzaXplKSB7CgkJaWYgKHNiX3Jkb25seShzYikpIHsKCQkJcHJfZXJy KCJKRlM6IHJlc2l6ZSByZXF1aXJlcyB2b2x1bWUgdG8gYmUgbW91bnRlZCByZWFkLXdyaXRlXG4i KTsKCQkJcmV0dXJuIC1FUk9GUzsKCQl9CgkJLi4uCgkJcmMgPSBqZnNfZXh0ZW5kZnMoc2IsIGN0 eC0+bmV3TFZTaXplLCAwKTsKfQoKc2JfcmRvbmx5KHNiKSBpcyBzdGlsbCBmYWxzZSwgc28gd29u J3QgamZzX2V4dGVuZGZzKCkgcHJvY2VlZCBvbiBhIGZpbGVzeXN0ZW0KdGhhdCBqdXN0IGVudGVy ZWQgZW1lcmdlbmN5IHJlYWQtb25seSBtb2RlIGR1cmluZyBzeW5jX2ZpbGVzeXN0ZW0oc2IpPwoK PiBAQCAtNDE1LDYgKzQyMSw5IEBAIHN0YXRpYyBpbnQgamZzX3JlY29uZmlndXJlKHN0cnVjdCBm c19jb250ZXh0ICpmYykKPiAgCQlyZXR1cm4gcmV0Owo+ICAJfQo+ICAJaWYgKCFzYl9yZG9ubHko c2IpICYmIHJlYWRvbmx5KSB7Cj4gKwkJLyogQWZ0ZXIgYW4gZXJyb3Igbm90aGluZyBtYXkgYmUg d3JpdHRlbiwgdW1vdW50IGNsb3NlcyB0aGUgbG9nLiAqLwo+ICsJCWlmIChzYl9lbWVyZ2VuY3lf cm8oc2IpKQo+ICsJCQlyZXR1cm4gMDsKPiAgCQlyYyA9IGRxdW90X3N1c3BlbmQoc2IsIC0xKTsK PiAgCQlpZiAocmMgPCAwKQo+ICAJCQlyZXR1cm4gcmM7CgpbU2V2ZXJpdHk6IEhpZ2hdCldoYXQg aGFwcGVucyBpZiB1c2Vyc3BhY2UgcmVxdWVzdHMgYSByZWFkLXdyaXRlIHJlbW91bnQgKGZvciBl eGFtcGxlLCBtb3VudCAtbwpyZW1vdW50LHJ3KSBhZnRlciBhIHJ1bnRpbWUgZmlsZXN5c3RlbSBl cnJvciB3aXRob3V0IGhhdmluZyByZW1vdW50ZWQKcmVhZC1vbmx5IGZpcnN0PwoKQmVjYXVzZSBq ZnNfaGFuZGxlX2Vycm9yKCkgY2FsbHMgc2Jfc2V0X2VtZXJnZW5jeV9ybyhzYikgd2l0aG91dCBz ZXR0aW5nClNCX1JET05MWSwgc2JfcmRvbmx5KHNiKSByZW1haW5zIGZhbHNlLiBJbiByZWNvbmZp Z3VyZV9zdXBlcigpOgoKZnMvc3VwZXIuYzpyZWNvbmZpZ3VyZV9zdXBlcigpIHsKCS4uLgoJCXJl bW91bnRfcncgPSAhKGZjLT5zYl9mbGFncyAmIFNCX1JET05MWSkgJiYgc2JfcmRvbmx5KHNiKTsK CQlyZW1vdW50X3JvID0gKGZjLT5zYl9mbGFncyAmIFNCX1JET05MWSkgJiYgIXNiX3Jkb25seShz Yik7Cgl9CgoJLyogQW4gZXJyb3IgbWFkZSB0aGUgZmlsZXN5c3RlbSByZWFkLW9ubHkgdW50aWwg aXQgaXMgdW5tb3VudGVkLiAqLwoJaWYgKHJlbW91bnRfcncgJiYgc2JfZW1lcmdlbmN5X3JvKHNi KSkKCQlyZXR1cm4gLUVST0ZTOwp9CgpyZW1vdW50X3J3IGlzIGZhbHNlLCBzbyByZWNvbmZpZ3Vy ZV9zdXBlcigpIGNhbGxzIGludG8gamZzX3JlY29uZmlndXJlKCkgd2l0aAohc2JfcmRvbmx5KHNi KSAmJiAhcmVhZG9ubHkuCgpJbiBqZnNfcmVjb25maWd1cmUoKSwgSkZTX1NCSShzYiktPmZsYWcg PSBjdHgtPmZsYWcgaXMgZXhlY3V0ZWQgdW5jb25kaXRpb25hbGx5CnJpZ2h0IGFmdGVyIHN5bmNf ZmlsZXN5c3RlbShzYikgKHdoaWNoIGFsc28gbWFrZXMgdGhlIGxhdGVyCihKRlNfU0JJKHNiKS0+ ZmxhZyAmIEpGU19OT0lOVEVHUklUWSkgIT0gKGZsYWcgJiBKRlNfTk9JTlRFR1JJVFkpIGNoZWNr IGNvbXBhcmUKZmxhZyBhZ2FpbnN0IGl0c2VsZiksIGFuZCB0aGVuIGpmc19yZWNvbmZpZ3VyZSgp IGZhbGxzIHRocm91Z2ggYW5kIHJldHVybnMgMAppbnN0ZWFkIG9mIC1FUk9GUy4KCkZ1cnRoZXJt b3JlLCBpZiBhIHJlbW91bnQgKGVpdGhlciBybyBvciBydykgaW5jbHVkZXMgdGhlIG5vaW50ZWdy aXR5IG9wdGlvbgphZnRlciBhbiBlcnJvciwgSkZTX1NCSShzYiktPmZsYWcgZ2FpbnMgSkZTX05P SU5URUdSSVRZIHdoaWxlIHNiaS0+cF9zdGF0ZSBpcwpzdGlsbCAwIChGTV9DTEVBTikuIFdoZW4g amZzX3Vtb3VudCgpIGxhdGVyIGNhbGxzIHVwZGF0ZVN1cGVyKHNiLCBGTV9DTEVBTik6Cgpmcy9q ZnMvamZzX21vdW50LmM6dXBkYXRlU3VwZXIoKSB7CgkuLi4KCWlmIChzYmktPmZsYWcgJiBKRlNf Tk9JTlRFR1JJVFkpIHsKCQlpZiAoc3RhdGUgPT0gRk1fRElSVFkpIHsKCQkJc2JpLT5wX3N0YXRl ID0gc3RhdGU7CgkJCXJldHVybiAwOwoJCX0gZWxzZSBpZiAoc3RhdGUgPT0gRk1fTU9VTlQpIHsK CQkJc2JpLT5wX3N0YXRlID0gc2JpLT5zdGF0ZTsKCQkJc3RhdGUgPSBGTV9ESVJUWTsKCQl9IGVs c2UgaWYgKHN0YXRlID09IEZNX0NMRUFOKSB7CgkJCXN0YXRlID0gc2JpLT5wX3N0YXRlOwoJCX0g ZWxzZQoJCQlqZnNfZXJyKCJ1cGRhdGVTdXBlcjogYmFkIHN0YXRlIik7Cgl9IGVsc2UgaWYgKHNi aS0+c3RhdGUgPT0gRk1fRElSVFkpCgkJcmV0dXJuIDA7Cn0KCndvbid0IHVwZGF0ZVN1cGVyKCkg dGFrZSB0aGUgSkZTX05PSU5URUdSSVRZIGJyYW5jaCBpbnN0ZWFkIG9mIHJldHVybmluZyBlYXJs eQphdCBzYmktPnN0YXRlID09IEZNX0RJUlRZLCBhbmQgb3ZlcndyaXRlIHRoZSBvbi1kaXNrIEZN X0RJUlRZIGVycm9yIHN0YXRlIHdpdGgKRk1fQ0xFQU4/CgpbU2V2ZXJpdHk6IEhpZ2hdCkNhbiBh IHJlYWQtb25seSByZW1vdW50IGluIGpmc19yZWNvbmZpZ3VyZSgpIGFsc28gcmFjZSB3aXRoIGFu IGluLWZsaWdodApleHRBbGxvYygpIG9yIGV4dFJlY29yZCgpIHRoYXQgcGFzc2VkIHRoZSBzYl9l bWVyZ2VuY3lfcm8oaXAtPmlfc2IpIGNoZWNrIGp1c3QKYmVmb3JlIGFuIGVycm9yIG9jY3VycmVk PwoKQ29uc2lkZXIgYW4gaW4tZmxpZ2h0IGFsbG9jYXRpb24gcnVubmluZyBjb25jdXJyZW50bHkg d2l0aCByZWNvbmZpZ3VyZV9zdXBlcigpCi0+IGpmc19yZWNvbmZpZ3VyZSgpIChlaXRoZXIgZHVy aW5nIGEgZm9yY2VkIHJlbW91bnQgc3VjaCBhcwplbWVyZ2VuY3lfcmVtb3VudCgpIHdoZXJlIHNi X3ByZXBhcmVfcmVtb3VudF9yZWFkb25seSgpIGlzIHNraXBwZWQsIG9yIHZpYQpiYWNrZ3JvdW5k IHdyaXRlYmFjayBpbiBkb193cml0ZXBhZ2VzKCkgLT4gamZzX3dyaXRlcGFnZXMoKSAtPgptcGFn ZV93cml0ZV9mb2xpbygpIC0+IGpmc19nZXRfYmxvY2soKSBhZnRlciB3cml0ZWJhY2tfaXRlcigp IGNsZWFycwpQQUdFQ0FDSEVfVEFHX0RJUlRZIGFuZCBiZWZvcmUgZm9saW9fc3RhcnRfd3JpdGVi YWNrKCkgc2V0cwpQQUdFQ0FDSEVfVEFHX1dSSVRFQkFDSyk6CgoxLiBleHRBbGxvYygpIG9yIGV4 dFJlY29yZCgpIHBhc3NlcyBzYl9lbWVyZ2VuY3lfcm8oaXAtPmlfc2IpIGJlZm9yZQogICBzYl9z ZXRfZW1lcmdlbmN5X3JvKHNiKSBpcyBzZXQuCjIuIGpmc19yZWNvbmZpZ3VyZSgpIHJ1bnMgc3lu Y19maWxlc3lzdGVtKHNiKSBhbmQgcmV0dXJucyAwIGF0IHRoZQogICBzYl9lbWVyZ2VuY3lfcm8o c2IpIGNoZWNrLCBhbmQgcmVjb25maWd1cmVfc3VwZXIoKSBzZXRzIFNCX1JET05MWSBvbgogICBz Yi0+c19mbGFncy4KMy4gZXh0QWxsb2MoKSBvciBleHRSZWNvcmQoKSBmaW5pc2hlcyBhY3F1aXJp bmcgaXRzIGFub255bW91cyB0bG9jayAoc2V0dGluZwogICBqaS0+YXRsaGVhZCBhbmQgYWRkaW5n IGppLT5hbm9uX2lub2RlX2xpc3QgdG8gVHhBbmNob3IuYW5vbl9saXN0KSBhbmQgY2FsbHMKICAg bWFya19pbm9kZV9kaXJ0eShpcCkgLT4gamZzX2RpcnR5X2lub2RlKGlwKSwgd2hpY2ggc2VlcyBq aS0+YXRsaGVhZCAhPSAwIGFuZAogICBzZXRzIENPTU1JVF9EaXJ0eS4KNC4gRHVyaW5nIHVubW91 bnQsIGdlbmVyaWNfc2h1dGRvd25fc3VwZXIoKSBjYWxscyBzeW5jX2ZpbGVzeXN0ZW0oc2IpLCB3 aGljaAogICBpbW1lZGlhdGVseSByZXR1cm5zIDAgYmVjYXVzZSBzYl9yZG9ubHkoc2IpIGlzIG5v dyB0cnVlLgogICBnZW5lcmljX3NodXRkb3duX3N1cGVyKCkgdGhlbiBjYWxscyBldmljdF9pbm9k ZXMoc2IpIGJlZm9yZQogICBqZnNfcHV0X3N1cGVyKCkuCgpXb3VsZG4ndCBqZnNfZXZpY3RfaW5v ZGUoKSBoaXQgQlVHX09OKCFsaXN0X2VtcHR5KCZqaS0+YW5vbl9pbm9kZV9saXN0KSkKYmVjYXVz ZSBub3RoaW5nIGNvbW1pdHMgdGhlIGlub2RlIGFmdGVyIGpmc19yZWNvbmZpZ3VyZSgpIHNldHMg U0JfUkRPTkxZPwoKWyAuLi4gXQo+IEBAIC02MTYsMTUgKzYzNSwxOSBAQCBzdGF0aWMgaW50IGpm c191bmZyZWV6ZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiKQo+ICAJc3RydWN0IGpmc19sb2cgKmxv ZyA9IHNiaS0+bG9nOwo+ICAJaW50IHJjID0gMDsKPiAgCj4gLQlpZiAoIXNiX3Jkb25seShzYikp IHsKPiArCS8qIFVuZG8gd2hhdCBqZnNfZnJlZXplKCkgZGlkLCBhbHNvIGlmIGFuIGVycm9yIGhh cHBlbmVkIG1lYW53aGlsZS4gKi8KPiArCWlmICh0ZXN0X2JpdChKRlNfRkxBR1NfTE9HX1NIVVRE T1dOLCAmc2JpLT5qZnNfZmxhZ3MpKSB7Cj4gIAkJcmMgPSB1cGRhdGVTdXBlcihzYiwgRk1fTU9V TlQpOwo+ICAJCWlmIChyYykgewo+ICAJCQlqZnNfZXJyb3Ioc2IsICJ1cGRhdGVTdXBlciBmYWls ZWRcbiIpOwo+ICAJCQlnb3RvIG91dDsKPiAgCQl9CgpbU2V2ZXJpdHk6IEhpZ2hdCklmIHRoZSBm aWxlc3lzdGVtIHdhcyBtb3VudGVkIHdpdGggSkZTX05PSU5URUdSSVRZIGFuZCBhbiBlcnJvciBv Y2N1cnMgd2hpbGUgaXQKaXMgZnJvemVuLCBkb2VzIGNhbGxpbmcgdXBkYXRlU3VwZXIoc2IsIEZN X01PVU5UKSBpbiBqZnNfdW5mcmVlemUoKSBjbG9iYmVyIHRoZQpGTV9ESVJUWSBzdGF0ZT8KCldo ZW4gamZzX2ZyZWV6ZSgpIHJ1bnMgb24gYSBKRlNfTk9JTlRFR1JJVFkgbW91bnQsIHVwZGF0ZVN1 cGVyKHNiLCBGTV9DTEVBTikKd3JpdGVzIEZNX0NMRUFOIGFuZCBzZXRzIHNiaS0+c3RhdGUgPSBG TV9DTEVBTi4gSWYgYSBmaWxlc3lzdGVtIGVycm9yIGhhcHBlbnMKd2hpbGUgZnJvemVuLCBqZnNf aGFuZGxlX2Vycm9yKCkgY2FsbHMgdXBkYXRlU3VwZXIoc2IsIEZNX0RJUlRZKToKCmZzL2pmcy9q ZnNfbW91bnQuYzp1cGRhdGVTdXBlcigpIHsKCS4uLgoJaWYgKHNiaS0+ZmxhZyAmIEpGU19OT0lO VEVHUklUWSkgewoJCWlmIChzdGF0ZSA9PSBGTV9ESVJUWSkgewoJCQlzYmktPnBfc3RhdGUgPSBz dGF0ZTsKCQkJcmV0dXJuIDA7CgkJfSBlbHNlIGlmIChzdGF0ZSA9PSBGTV9NT1VOVCkgewoJCQlz YmktPnBfc3RhdGUgPSBzYmktPnN0YXRlOwoJCQlzdGF0ZSA9IEZNX0RJUlRZOwoJCX0gZWxzZSBp ZiAoc3RhdGUgPT0gRk1fQ0xFQU4pIHsKCQkJc3RhdGUgPSBzYmktPnBfc3RhdGU7CgkJfQoJCS4u LgoJfQoJLi4uCglzYmktPnN0YXRlID0gc3RhdGU7Cn0KClVuZGVyIEpGU19OT0lOVEVHUklUWSwg dXBkYXRlU3VwZXIoc2IsIEZNX0RJUlRZKSByZWNvcmRzIEZNX0RJUlRZIGluCnNiaS0+cF9zdGF0 ZSBhbmQgcmV0dXJucyAwLCBsZWF2aW5nIHNiaS0+c3RhdGUgYXMgRk1fQ0xFQU4uCgpXaGVuIGpm c191bmZyZWV6ZSgpIHRoZW4gY2FsbHMgdXBkYXRlU3VwZXIoc2IsIEZNX01PVU5UKSwgdGhlIHN0 YXRlID09IEZNX01PVU5UCmJyYW5jaCBzZXRzIHNiaS0+cF9zdGF0ZSA9IHNiaS0+c3RhdGUgKEZN X0NMRUFOKSwgb3ZlcndyaXRpbmcgdGhlIEZNX0RJUlRZIGluCnNiaS0+cF9zdGF0ZS4gV2hlbiBq ZnNfdW1vdW50KCkgbGF0ZXIgY2FsbHMgdXBkYXRlU3VwZXIoc2IsIEZNX0NMRUFOKSwgd29uJ3Qg aXQKd3JpdGUgc2JpLT5wX3N0YXRlIChGTV9DTEVBTikgdG8gZGlzaywgbGVhdmluZyB0aGUgY29y cnVwdGVkIGZpbGVzeXN0ZW0gbWFya2VkCmNsZWFuPwoKLS0gClNhc2hpa28gQUkgcmV2aWV3IMK3 IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MTAyOS13b3JrLWZzLXNiX3Jkb25s eS12Mi0wLTJmNDRmNjRmMGI2NkBrZXJuZWwub3JnP3BhcnQ9NQoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9u IG1haWxpbmcgbGlzdApodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LW10ZC8K