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 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 58F90606A33B for ; Fri, 30 Oct 2026 16:09:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=PfRb7zlK Received: by kanga.kvack.org (Postfix) id 0A1396B05B7; Fri, 30 Oct 2026 12:09:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 02AE46B05B8; Fri, 30 Oct 2026 12:09:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E5C786B05B9; Fri, 30 Oct 2026 12:09:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id B527A6B05B7 for ; Fri, 30 Oct 2026 12:09:54 -0400 (EDT) Received: from smtpin09.hostedemail.com (lb01a-stub [10.200.18.249]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 47AD7160453 for ; Fri, 30 Oct 2026 16:09:54 +0000 (UTC) X-FDA: 85379778708.09.0C6EE29 Received: from tor.source.kernel.org (tor.source.kernel.org [172.105.4.254]) by imf18.hostedemail.com (Postfix) with ESMTP id B38AC1C000E for ; Fri, 30 Oct 2026 16:09:52 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20260515 header.b=PfRb7zlK; spf=pass (imf18.hostedemail.com: domain of sashiko-bot@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sashiko-bot@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1793376592; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=bXdDkLDRoQfo0RDcxKVzZBJ1sPUWnSU51HFGyOfej4k=; b=xUGHrSKZis02DzHBfO+oyKm+MJMpi1aC5loEBAQLtKnqCGUodd6MNspIyzCIaeWr6PiDfQ vbYyCZwZdFEZRov60yHGIqoLs5zFXYD0u4o9/OrlbxuaxC1dGgXksETZesNBsl+uAq2rX+ q3k2UtNFOA1s+WB1WzOSHoE5gap9MXQ= ARC-Seal: i=1; a=rsa-sha256; d=hostedemail.com; s=arc-20220608; cv=none; t=1793376592; b=1OZSGJ7wdP2jbH3Mrm/21iU1CJjIBDpjA+IPSREEhzQnwvhVTz+0BVjFPwhuo+h5JD5q+C 3GbR0WeX6puSG0omcrkN/8gyUYjX0b97r+SrxubonpnEciep/jpmPJbMRwbwzOQbKJKvKS QNy2Vlkxp2RE9XKHp2MGNvL9Jub97xw= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20260515 header.b=PfRb7zlK; spf=pass (imf18.hostedemail.com: domain of sashiko-bot@kernel.org designates 172.105.4.254 as permitted sender) smtp.mailfrom=sashiko-bot@kernel.org; dmarc=pass (policy=quarantine) header.from=kernel.org 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 Reply-To: sashiko-reviews@lists.linux.dev 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> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Fri, 30 Oct 2026 16:09:51 +0000 X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: B38AC1C000E X-Stat-Signature: dapmhdw74r4ne5c44me4aa7bihp4sssw X-Rspam-User: X-Spam-Status: No, score=-10.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=4.0.1 X-HE-Tag: 1793376592-876172 X-HE-Meta: U2FsdGVkX1/aZpxrnKd8EGMFNRztNiKi28nv3PW9yEMGHBtERhOSfaipE9Z8jyp+mr2PCWhZWy7URr/Vk0NsCH9tTSl/7hxR6mxrX7TWhRhODus5K3bceLdMUTwYAmt54Of4G9XV+Ld4CO1LODRZuqmAvX2flRYeXrN93iNwk4wAFdwg7DQesTs6yghxEOo60h6yKr5wQ3SVho6oPRNajcQZthPThCB62xAcLehngqmFsgHH/h3A+RAxra9dwASpmr10AjwQF5YKRJSLlzSgRWhpUEY7r+zGMB6JF/ko2iDg6n/LLWAl6gtqwrZDrI/GWss2jS8XiJsPkRWmRWhf4D8K7EYigyIJfExUpSN0FGSXvFapR3dUKxpEYIAVE7hEFmvjpro004Xok6CK5GMeOHQofnru0lqM6TXoHZ7YXj1YegjXooGFkwJiQtNbfxAN4WP2EEt8AOMjLBUKabMFvUsz+PkmqqTEBpcVvxCXfHbYo7lfDIV6I0/z6WWGQGE9/uCyTmC4cHct8BZoLmL7YWSPzosPJy1hOX4S18jW21Ft3lU8UpzbWkQn3I5SIwPulxvsEB6oKMxNM1XgvDkIzBL1vzZUnE/Y2moTyKQafBMHaVax06kLV2VQKs8A8Q9NTjnD9Ymp99OAZxiIvPt5rpSNEluK3tpONZWlIySoyn6+pN9yJmV/AO2xLBMg4HjmeIvvxPUK3SUwDfwxMVcDsr9mGOuddszIdTnGQ8vOrAec5AH6r3IboJI4K2hUafwpmFP4P21CkrvSnKwBaL4qft3pP/u9uBArrVVHnlPZDoOVS33OxpcCzv3xzfsGf6b1FJ9Zwz5O3hCVW6EX/hbj0dbBj7FLohMaWX4FEME9qmwKhJ7GU0EFDTtHdLs5w/OdSyRImPgMDaDsneCEywBQH1IBnnAX1UnSFyAE1msCcBw08iX3U7yb4U9kpuVt3+gvUFLb6CDoUcNBErBydCm 3pA8DR2Q OK3nsea88UT8HuCsT1ahiHctY8xr2OfYNSehAuGx5xNym6vBNbXLZMT8iZMAJ9aZ4SIFqkhhl8YDUmiH7SqYBd/U9DF0zZRTFiHIl4sUXqCbCuQMymPQFnmnW+MmjWKdVn/OI3whtX5RaXMZ6ReRRz9/yn5MaVvad/uLfmiUScllWAopjzFe1ScqD5ZxxYeXcZqmGYLrpGi3Ga84+nGispYpFVNLSUUE14X1ysygNoIRwaZUq5HF/VA+Tx6U2KvqHNfDyQOvcGpitVrNi1mRiZuJ0ahCChNPtUH++ZLsOZ0zRC3wYUJVdgDYsTYxEgYYQg7HihGTNTEUkzbKs+fDxVWbNqavVPYD5u4UWCj2nbfObdO5FWNAsXczZ/75BCFceeTpqY9+DTLiCDRtWY4eEfaciKiZVEwT9820Z6QSnzjwCBffOMEX0WQleEQJndTeWrpO9IfIkJzE2uFZi4z+Z98BrDFu1meBLX626a1iuQNYqpYJY5YpSGTUZVwK4UPIWtirUR32hUIA1J/YlBaO0lT0s8e7Nmbq1Vx4mGkkH9xqdBZJOueLcbZzkKf3knhQ13E5lvF+z/t2VLR82rjaIL88ITMlZEGFPHqKgtBrgbXzYu37zJx/99AttobjFkocUuWLnA+oN4gp6epfavp49y82uH2tGhYa6SWCO Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on aws-us-west-2-korg-listserv-alma10-1 X-Archived-By: Thank you for your contribution! Sashiko AI review found 5 potential issue(= s) to consider: - [High] jfs: jfs_reconfigure() allows rw remount and mutates sbi->flag in = emergency_ro - [High] jfs: uncommitted anon tlocks on error in extRecord() and extAlloc() - [High] jfs: updateSuper() clobbers FM_DIRTY in jfs_unfreeze() under JFS_N= OINTEGRITY - [High] jfs: race between jfs_reconfigure() and in-flight allocations trig= gers BUG_ON - [Medium] jfs: jfs_reconfigure() does not recheck sb_emergency_ro() after = sync -- commit 2a162200f78051c6110938dcdd3b265d4583997b Author: Christian Brauner jfs: don't set SB_RDONLY after filesystem errors This commit replaces direct setting of SB_RDONLY in jfs_handle_error() with sb_set_emergency_ro() so that errors occurring while frozen do not cause thaw_super() to skip jfs_unfreeze(). It also tracks log shutdown state in JFS_FLAGS_LOG_SHUTDOWN and adds sb_emergency_ro() checks across JFS allocation, metadata modification, freeze, sync, and remount paths. Link: https://lore.kernel.org/r/20260903060855.4610-1-kmehltretter@gmail.com > diff --git a/fs/jfs/jfs_extent.c b/fs/jfs/jfs_extent.c > index 46529bcc8297e..ba55e0bbecd24 100644 > --- a/fs/jfs/jfs_extent.c > +++ b/fs/jfs/jfs_extent.c [ ... ] > @@ -270,6 +276,10 @@ int extRecord(struct inode *ip, xad_t * xp) > /* update the extent */ > rc =3D xtUpdate(0, ip, xp); > =20 > + /* get the anonymous tlocks committed, like extAlloc() does */ > + if (!rc) > + mark_inode_dirty(ip); > + > mutex_unlock(&JFS_IP(ip)->commit_mutex); > return rc; > } [Severity: High] What happens in extRecord() and extAlloc() if xtUpdate(), xtExtend(), or xtInsert() fails after acquiring an anonymous tlock? In xtUpdate() and xtExtend(), BT_MARK_DIRTY(mp, ip) runs before txLock(0, i= p, mp, ...): fs/jfs/jfs_xtree.c:xtUpdate() { ... BT_MARK_DIRTY(mp, ip); /* * acquire tlock of the leaf page containing original entry */ if (!test_cflag(COMMIT_Nolink, ip)) { tlck =3D txLock(tid, ip, mp, tlckXTREE | tlckGROW); xtlck =3D (struct xtlock *) & tlck->lock; } ... if ((xoff > nxoff) || (nxoff + nxlen > xoff + xlen)) { XT_PUTPAGE(mp); jfs_error(ip->i_sb, "nXAD in not completely contained within XAD\n"); return -EIO; } ... } If mp is not the root xtree page, BT_MARK_DIRTY() does not call mark_inode_dirty(ip). If mp is the root xtree page and sb_emergency_ro() was already set concurrently, BT_MARK_DIRTY() calls jfs_dirty_inode() while JFS_IP(ip)->atlhead is still 0, so jfs_dirty_inode() returns early without setting COMMIT_Dirty. Immediately afterward, txLock(0, ip, ...) attaches an anonymous tlock to JFS_IP(ip)->atlhead and queues JFS_IP(ip)->anon_inode_list onto TxAnchor.anon_list. Similarly, in extAlloc(), xtExtend() and xtInsert() (via xtSplitUp() -> xtSplitPage() or xtSplitRoot()) call txLock(0, ip, ...) befo= re subsequent metapage reads or extent checks can fail and call jfs_error() -> sb_set_emergency_ro(). When xtUpdate(), xtExtend(), or xtInsert() returns a non-zero rc, extRecord= () skips mark_inode_dirty(ip) because of the !rc check, and extAlloc() returns early before mark_inode_dirty(ip): fs/jfs/jfs_extent.c:extAlloc() { ... if (xaddr && xaddr =3D=3D nxaddr) rc =3D xtExtend(0, ip, xoff, (int) nxlen, 0); else rc =3D xtInsert(0, ip, xflag, xoff, (int) nxlen, &nxaddr, 0); if (rc) { dbFree(ip, nxaddr, nxlen); dquot_free_block(ip, nxlen); mutex_unlock(&JFS_IP(ip)->commit_mutex); return (rc); } ... mark_inode_dirty(ip); } With COMMIT_Dirty never set on ip (and jfs_freeze() skipping txQuiesce() on= ce sb_emergency_ro() is set), could evicting the inode trigger BUG_ON(!list_empty(&ji->anon_inode_list)) in jfs_evict_inode()? > diff --git a/fs/jfs/super.c b/fs/jfs/super.c > index 8180d83d33fed..bbaba14821e64 100644 > --- a/fs/jfs/super.c > +++ b/fs/jfs/super.c [ ... ] > @@ -367,6 +368,11 @@ static int jfs_reconfigure(struct fs_context *fc) > int flag =3D ctx->flag; > int ret; > =20 > + /* Don't resize based on a block map we don't trust after an error. */ > + if (ctx->resize && sb_emergency_ro(sb)) > + return -EROFS; > + > + /* After an error this only commits what was queued before it. */ > sync_filesystem(sb); > =20 > /* Transfer results of parsing to the sbi */ [Severity: Medium] If a filesystem error occurs while sync_filesystem(sb) is flushing dirty pa= ges or inodes during a resize remount (or concurrently while sync_filesystem(sb) is running), jfs_handle_error() now sets sb_set_emergency_ro(sb) instead of SB_RDONLY. When execution reaches the ctx->resize block in jfs_reconfigure(): fs/jfs/super.c:jfs_reconfigure() { ... if (ctx->resize) { if (sb_rdonly(sb)) { pr_err("JFS: resize requires volume to be mounted read-write\n"); return -EROFS; } ... rc =3D jfs_extendfs(sb, ctx->newLVSize, 0); } sb_rdonly(sb) is still false, so won't jfs_extendfs() proceed on a filesyst= em that just entered emergency read-only mode during sync_filesystem(sb)? > @@ -415,6 +421,9 @@ static int jfs_reconfigure(struct fs_context *fc) > return ret; > } > if (!sb_rdonly(sb) && readonly) { > + /* After an error nothing may be written, umount closes the log. */ > + if (sb_emergency_ro(sb)) > + return 0; > rc =3D dquot_suspend(sb, -1); > if (rc < 0) > return rc; [Severity: High] What happens if userspace requests a read-write remount (for example, mount= -o remount,rw) after a runtime filesystem error without having remounted read-only first? Because jfs_handle_error() calls sb_set_emergency_ro(sb) without setting SB_RDONLY, sb_rdonly(sb) remains false. In reconfigure_super(): fs/super.c:reconfigure_super() { ... remount_rw =3D !(fc->sb_flags & SB_RDONLY) && sb_rdonly(sb); remount_ro =3D (fc->sb_flags & SB_RDONLY) && !sb_rdonly(sb); } /* An error made the filesystem read-only until it is unmounted. */ if (remount_rw && sb_emergency_ro(sb)) return -EROFS; } remount_rw is false, so reconfigure_super() calls into jfs_reconfigure() wi= th !sb_rdonly(sb) && !readonly. In jfs_reconfigure(), JFS_SBI(sb)->flag =3D ctx->flag is executed unconditi= onally right after sync_filesystem(sb) (which also makes the later (JFS_SBI(sb)->flag & JFS_NOINTEGRITY) !=3D (flag & JFS_NOINTEGRITY) check c= ompare flag against itself), and then jfs_reconfigure() falls through and returns 0 instead of -EROFS. Furthermore, if a remount (either ro or rw) includes the nointegrity option after an error, JFS_SBI(sb)->flag gains JFS_NOINTEGRITY while sbi->p_state = is still 0 (FM_CLEAN). When jfs_umount() later calls updateSuper(sb, FM_CLEAN): fs/jfs/jfs_mount.c:updateSuper() { ... if (sbi->flag & JFS_NOINTEGRITY) { if (state =3D=3D FM_DIRTY) { sbi->p_state =3D state; return 0; } else if (state =3D=3D FM_MOUNT) { sbi->p_state =3D sbi->state; state =3D FM_DIRTY; } else if (state =3D=3D FM_CLEAN) { state =3D sbi->p_state; } else jfs_err("updateSuper: bad state"); } else if (sbi->state =3D=3D FM_DIRTY) return 0; } won't updateSuper() take the JFS_NOINTEGRITY branch instead of returning ea= rly at sbi->state =3D=3D FM_DIRTY, and overwrite the on-disk FM_DIRTY error sta= te with FM_CLEAN? [Severity: High] Can a read-only remount in jfs_reconfigure() also race with an in-flight extAlloc() or extRecord() that passed the sb_emergency_ro(ip->i_sb) check j= ust before an error occurred? Consider an in-flight allocation running concurrently with reconfigure_supe= r() -> jfs_reconfigure() (either during a forced remount such as emergency_remount() where sb_prepare_remount_readonly() is skipped, or via background writeback in do_writepages() -> jfs_writepages() -> mpage_write_folio() -> jfs_get_block() after writeback_iter() clears PAGECACHE_TAG_DIRTY and before folio_start_writeback() sets PAGECACHE_TAG_WRITEBACK): 1. extAlloc() or extRecord() passes sb_emergency_ro(ip->i_sb) before sb_set_emergency_ro(sb) is set. 2. jfs_reconfigure() runs sync_filesystem(sb) and returns 0 at the sb_emergency_ro(sb) check, and reconfigure_super() sets SB_RDONLY on sb->s_flags. 3. extAlloc() or extRecord() finishes acquiring its anonymous tlock (setting ji->atlhead and adding ji->anon_inode_list to TxAnchor.anon_list) and ca= lls mark_inode_dirty(ip) -> jfs_dirty_inode(ip), which sees ji->atlhead !=3D= 0 and sets COMMIT_Dirty. 4. During unmount, generic_shutdown_super() calls sync_filesystem(sb), which immediately returns 0 because sb_rdonly(sb) is now true. generic_shutdown_super() then calls evict_inodes(sb) before jfs_put_super(). Wouldn't jfs_evict_inode() hit BUG_ON(!list_empty(&ji->anon_inode_list)) because nothing commits the inode after jfs_reconfigure() sets SB_RDONLY? [ ... ] > @@ -616,15 +635,19 @@ static int jfs_unfreeze(struct super_block *sb) > struct jfs_log *log =3D sbi->log; > int rc =3D 0; > =20 > - if (!sb_rdonly(sb)) { > + /* Undo what jfs_freeze() did, also if an error happened meanwhile. */ > + if (test_bit(JFS_FLAGS_LOG_SHUTDOWN, &sbi->jfs_flags)) { > rc =3D updateSuper(sb, FM_MOUNT); > if (rc) { > jfs_error(sb, "updateSuper failed\n"); > goto out; > } [Severity: High] If the filesystem was mounted with JFS_NOINTEGRITY and an error occurs whil= e it is frozen, does calling updateSuper(sb, FM_MOUNT) in jfs_unfreeze() clobber= the FM_DIRTY state? When jfs_freeze() runs on a JFS_NOINTEGRITY mount, updateSuper(sb, FM_CLEAN) writes FM_CLEAN and sets sbi->state =3D FM_CLEAN. If a filesystem error hap= pens while frozen, jfs_handle_error() calls updateSuper(sb, FM_DIRTY): fs/jfs/jfs_mount.c:updateSuper() { ... if (sbi->flag & JFS_NOINTEGRITY) { if (state =3D=3D FM_DIRTY) { sbi->p_state =3D state; return 0; } else if (state =3D=3D FM_MOUNT) { sbi->p_state =3D sbi->state; state =3D FM_DIRTY; } else if (state =3D=3D FM_CLEAN) { state =3D sbi->p_state; } ... } ... sbi->state =3D state; } Under JFS_NOINTEGRITY, updateSuper(sb, FM_DIRTY) records FM_DIRTY in sbi->p_state and returns 0, leaving sbi->state as FM_CLEAN. When jfs_unfreeze() then calls updateSuper(sb, FM_MOUNT), the state =3D=3D = FM_MOUNT branch sets sbi->p_state =3D sbi->state (FM_CLEAN), overwriting the FM_DIRT= Y in sbi->p_state. When jfs_umount() later calls updateSuper(sb, FM_CLEAN), won'= t it write sbi->p_state (FM_CLEAN) to disk, leaving the corrupted filesystem mar= ked clean? --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261029-work-fs-sb= _rdonly-v2-0-2f44f64f0b66@kernel.org?part=3D5