From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.remote-ip=100.103.45.18 ARC-Seal: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; cv=none; t=1794657820; b=G7JhtHYBOtxRgWHq8/5A84WTBQoYbZjW8nEVhusZZCAee7vJ1v5ap8QLFWZ7VpmLZXxu GB3nJ53v6hv17JLOXz3F80ZpAzhwgRoFUCBICbEjfV2Ahpu5VkTnZ4DBO1A3o1HO15zYk +phpvXJ4Ut6QfVa9ClpnXb/o3qrXU9P4ecott356NZU/8rC1sdfGs5jPtIVg2BDXkiIWw E4I5qGj9T5k3XLxHEDj2NSSfAClqrPKWsrcHnM5uIZI/Qj/G5HgppuOF5IqqXtv5DMtpO +i+aupiNP51GGYGaufzGFPZLKLH2CqtDybglDwIlwsslLfXwUMJ3tJymErgHZMRbqng== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1794657820; h=Received:DKIM-Signature:Message-ID:From:Subject:Reply-To:To:Cc: In-Reply-To:References:Content-Type:Content-Transfer-Encoding:Date; bh=i/KYa3UJ+vAFbs7NcbhfOHJmaPLTvaBxJddS/GfOWco=; b=aSPm+MiL2kbi4haQ98Edd5pjPlUxSKamQmhEZ6OrBPiaUk+ZW4c4VLOghY/T2VEGLTRV lDRdRC2DP8/On4AMBmXFStb0+VeWu6sZJt9QK4zqR5q6FNkx1+JfifI6jRmLFkw2s5rAk gUiOVCVirTX3qvll8VHNXn/7C9V/TOo4PSwqbCT5SqjJ6gdjbQtuVlTxpSwdPBgqi2NdR hw1sgyNoDWa6sJlShV42qE9veTgBNwmCZDZCiKu80wnkKHFpk0OVHzcBLj5iR3fQvGe7D 2+PIxLazrGRYB3dsDzytNNmZIVWbT4zfnAQdnY+hKy3cRlxdzIwqW/EAA23sgrR/CTQ== ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=f69SiW3T; arc=none smtp.remote-ip=100.103.45.18 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC420606A337; Sat, 14 Nov 2026 12:03:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=f69SiW3T Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEAFA1F000C5; Sat, 14 Nov 2026 12:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794657820; bh=i/KYa3UJ+vAFbs7NcbhfOHJmaPLTvaBxJddS/GfOWco=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=f69SiW3T4Q7A6/VsOz19IJcDTbc2284jaDxgfyilDNG1Mci6VQQ0XsUIBzmCI2qyW jBaCIXM0+pGMbZU6+HsTbwcuLPsb2hzKKEbMRuKK4DOQw/dU5Ns9uMCz52Jnzj9tF5 AXH/9yDypM1F5LtJdPmEAkLH4UA7aJwzK9MLeRyuesvkSJjk6XuJlznUHMW2Vc4Awm BtcYalXD+cdcCtN0E28SgqskmS21t/xSbEIhlpoLv2451rm/ZPCa/BhesuHFKDJLNb sT27WrI12rYRWzsaabg7n85XlDTqlHu6y6vW8o/+iQEOAYtkvM/L4JnWcrRwRiTkYU 9J1nIjwgbU3lA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 19/33] ntfs: 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, "Hyunchul Lee" , dsterba@suse.cz, tytso@mit.edu, "Mark Fasheh" , "Joel Becker" , "Joseph Qi" In-Reply-To: <20261113-work-fs-sb_rdonly-v3-19-0be92bb73709@kernel.org> References: <20261113-work-fs-sb_rdonly-v3-0-0be92bb73709@kernel.org> <20261113-work-fs-sb_rdonly-v3-19-0be92bb73709@kernel.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Date: Sat, 14 Nov 2026 12:03:39 +0000 X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list Thank you for your contribution! Sashiko AI review found 1 potential issue to consider: - [Medium] ntfs: unlocked sb->s_flags RMW in ntfs_handle_error() via precalc_work -- commit 41f5366b5799dc9babb537d585f77ff9063831e1 Author: Christian Brauner ntfs: don't set SB_RDONLY after filesystem errors This commit replaces setting SB_RDONLY on runtime filesystem errors under errors=3Dremount-ro with an NV_EmergencyRO volume flag and an asynchronous work item to persist the volume dirty bit. > diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c > index 71f0aea46bf8f..91290688d2898 100644 > --- a/fs/ntfs/super.c > +++ b/fs/ntfs/super.c [ ... ] > @@ -434,7 +436,21 @@ void ntfs_handle_error(struct super_block *sb) > return; > =20 > if (vol->on_errors =3D=3D ON_ERRORS_REMOUNT_RO) { > - sb->s_flags |=3D SB_RDONLY; > + if (!(sb->s_flags & SB_BORN)) { > + /* Before SB_BORN the mounter holds s_umount. */ > + sb->s_flags |=3D SB_RDONLY; > + } else { [Severity: Medium] Can precalc_free_clusters() reach this branch on a kworker thread before SB_BORN is set, racing on sb->s_flags without holding s_umount? ntfs_fill_super() queues vol->precalc_work before returning to get_tree_bdev_flags() and vfs_get_tree(): CPU0 (mounter) CPU1 (kworker) vfs_get_tree() get_tree_bdev_flags() ntfs_fill_super() queue_work(..., &vol->precalc_work) precalc_free_clusters() get_nr_free_clusters() ... ntfs_error() ntfs_handle_error() /* !(sb->s_flags & SB_BORN) */ super_wake(sb, SB_BORN) sb->s_flags |=3D SB_RDONLY; smp_store_release(&sb->s_flags, <-- unlocked RMW race sb->s_flags | SB_BORN); During mount, load_system_files() does not populate the runlist for $Bitmap, so get_nr_free_clusters() decompresses $Bitmap's mapping pairs on the workqueue and calls ntfs_error() if reading or decompressing fails. Because neither side updates sb->s_flags atomically and the kworker does not hold s_umount, the RMW in ntfs_handle_error() can overwrite SB_BORN (leaving later super_lock() callers hung waiting for SB_BORN) or lose SB_RDONLY. Taking the !SB_BORN branch from the workqueue also skips NVolSetErrors(vol) and NV_EmergencyRO, allowing a subsequent remount,rw in ntfs_reconfigure() to succeed despite the error. --=20 Sashiko AI review =C2=B7 https://sashiko.dev/#/patchset/20261113-work-fs-sb= _rdonly-v3-0-0be92bb73709@kernel.org?part=3D19 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 B8C22606A887 for ; Sat, 14 Nov 2026 12:03:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.a=rsa-sha256 header.s=bombadil.20210309 header.b=mZ/lHRtT; dkim=fail reason="signature verification failed" (2048-bit key) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20260515 header.b=f69SiW3T 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=/sG2I8ISkP2Tf6hZhNkXMA73wxfjv1jzFy0jlRLjDB4=; b=mZ/lHRtTa4aJw4Hq3xscg0mPvl ZbK9li4oIax9g6MAOqCUXB6UrLGjXmoB9JU4Gsluied5GjcRhGwUIpbV/cfHscezTMZcyFEorzd86 yroexd8o8g7oCS5uKnlIJOJYY1NLNNSo8VighzDG7TfPs/bmLheWAqKNcapHGHDGO0Q92DzbsC2SP dh+LMhp7CZnbQ57rXEtruQNWl88sRPw/7qCfsg2BOzWdqQt/UhIYtqUWl6tT8WO/yAULJV6Jr5MrT YiiyjSkplGMpH7eypE1S0glubQq7PPCbz1mpccxXAehWvyy39ndvcz5YIci2iTS6vq/oUviHbXfAl B2KfShSQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.100.1 #2 (Red Hat Linux)) id 1xSCTu-0000000Fz1F-1uy0; Sat, 14 Nov 2026 12:03:42 +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 1xSCTt-0000000Fz00-1QPS for linux-mtd@lists.infradead.org; Sat, 14 Nov 2026 12:03:41 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by tor.source.kernel.org (Postfix) with ESMTP id B9FA761E34; Sat, 14 Nov 2026 12:03:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CEAFA1F000C5; Sat, 14 Nov 2026 12:03:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1794657820; bh=i/KYa3UJ+vAFbs7NcbhfOHJmaPLTvaBxJddS/GfOWco=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=f69SiW3T4Q7A6/VsOz19IJcDTbc2284jaDxgfyilDNG1Mci6VQQ0XsUIBzmCI2qyW jBaCIXM0+pGMbZU6+HsTbwcuLPsb2hzKKEbMRuKK4DOQw/dU5Ns9uMCz52Jnzj9tF5 AXH/9yDypM1F5LtJdPmEAkLH4UA7aJwzK9MLeRyuesvkSJjk6XuJlznUHMW2Vc4Awm BtcYalXD+cdcCtN0E28SgqskmS21t/xSbEIhlpoLv2451rm/ZPCa/BhesuHFKDJLNb sT27WrI12rYRWzsaabg7n85XlDTqlHu6y6vW8o/+iQEOAYtkvM/L4JnWcrRwRiTkYU 9J1nIjwgbU3lA== Message-ID: From: sashiko-bot@kernel.org Subject: Re: [PATCH v3 19/33] ntfs: 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, "Hyunchul Lee" , dsterba@suse.cz, tytso@mit.edu, "Mark Fasheh" , "Joel Becker" , "Joseph Qi" In-Reply-To: <20261113-work-fs-sb_rdonly-v3-19-0be92bb73709@kernel.org> References: <20261113-work-fs-sb_rdonly-v3-0-0be92bb73709@kernel.org> <20261113-work-fs-sb_rdonly-v3-19-0be92bb73709@kernel.org> Date: Sat, 14 Nov 2026 12:03:39 +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 MSBwb3RlbnRpYWwKaXNzdWUgdG8gY29uc2lkZXI6Ci0gW01lZGl1bV0gbnRmczogdW5sb2NrZWQg c2ItPnNfZmxhZ3MgUk1XIGluIG50ZnNfaGFuZGxlX2Vycm9yKCkgdmlhCiAgcHJlY2FsY193b3Jr Ci0tCgpjb21taXQgNDFmNTM2NmI1Nzk5ZGM5YmFiYjUzN2Q1ODVmNzdmZjkwNjM4MzFlMQpBdXRo b3I6IENocmlzdGlhbiBCcmF1bmVyIDxicmF1bmVyQGtlcm5lbC5vcmc+CgpudGZzOiBkb24ndCBz ZXQgU0JfUkRPTkxZIGFmdGVyIGZpbGVzeXN0ZW0gZXJyb3JzCgpUaGlzIGNvbW1pdCByZXBsYWNl cyBzZXR0aW5nIFNCX1JET05MWSBvbiBydW50aW1lIGZpbGVzeXN0ZW0gZXJyb3JzIHVuZGVyCmVy cm9ycz1yZW1vdW50LXJvIHdpdGggYW4gTlZfRW1lcmdlbmN5Uk8gdm9sdW1lIGZsYWcgYW5kIGFu IGFzeW5jaHJvbm91cwp3b3JrIGl0ZW0gdG8gcGVyc2lzdCB0aGUgdm9sdW1lIGRpcnR5IGJpdC4K Cj4gZGlmZiAtLWdpdCBhL2ZzL250ZnMvc3VwZXIuYyBiL2ZzL250ZnMvc3VwZXIuYwo+IGluZGV4 IDcxZjBhZWE0NmJmOGYuLjkxMjkwNjg4ZDI4OTggMTAwNjQ0Cj4gLS0tIGEvZnMvbnRmcy9zdXBl ci5jCj4gKysrIGIvZnMvbnRmcy9zdXBlci5jClsgLi4uIF0KPiBAQCAtNDM0LDcgKzQzNiwyMSBA QCB2b2lkIG50ZnNfaGFuZGxlX2Vycm9yKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IpCj4gIAkJcmV0 dXJuOwo+ICAKPiAgCWlmICh2b2wtPm9uX2Vycm9ycyA9PSBPTl9FUlJPUlNfUkVNT1VOVF9STykg ewo+IC0JCXNiLT5zX2ZsYWdzIHw9IFNCX1JET05MWTsKPiArCQlpZiAoIShzYi0+c19mbGFncyAm IFNCX0JPUk4pKSB7Cj4gKwkJCS8qIEJlZm9yZSBTQl9CT1JOIHRoZSBtb3VudGVyIGhvbGRzIHNf dW1vdW50LiAqLwo+ICsJCQlzYi0+c19mbGFncyB8PSBTQl9SRE9OTFk7Cj4gKwkJfSBlbHNlIHsK CltTZXZlcml0eTogTWVkaXVtXQpDYW4gcHJlY2FsY19mcmVlX2NsdXN0ZXJzKCkgcmVhY2ggdGhp cyBicmFuY2ggb24gYSBrd29ya2VyIHRocmVhZCBiZWZvcmUKU0JfQk9STiBpcyBzZXQsIHJhY2lu ZyBvbiBzYi0+c19mbGFncyB3aXRob3V0IGhvbGRpbmcgc191bW91bnQ/CgpudGZzX2ZpbGxfc3Vw ZXIoKSBxdWV1ZXMgdm9sLT5wcmVjYWxjX3dvcmsgYmVmb3JlIHJldHVybmluZyB0bwpnZXRfdHJl ZV9iZGV2X2ZsYWdzKCkgYW5kIHZmc19nZXRfdHJlZSgpOgoKQ1BVMCAobW91bnRlcikgICAgICAg ICAgICAgICAgICAgIENQVTEgKGt3b3JrZXIpCnZmc19nZXRfdHJlZSgpCiAgZ2V0X3RyZWVfYmRl dl9mbGFncygpCiAgICBudGZzX2ZpbGxfc3VwZXIoKQogICAgICBxdWV1ZV93b3JrKC4uLiwgJnZv bC0+cHJlY2FsY193b3JrKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2Fs Y19mcmVlX2NsdXN0ZXJzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0 X25yX2ZyZWVfY2x1c3RlcnMoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnRmc19lcnJvcigp CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG50ZnNfaGFuZGxlX2Vy cm9yKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiAhKHNi LT5zX2ZsYWdzICYgU0JfQk9STikgKi8KICBzdXBlcl93YWtlKHNiLCBTQl9CT1JOKSAgICAgICAg ICAgICAgICAgICBzYi0+c19mbGFncyB8PSBTQl9SRE9OTFk7CiAgICBzbXBfc3RvcmVfcmVsZWFz ZSgmc2ItPnNfZmxhZ3MsICAgICAgICAgICA8LS0gdW5sb2NrZWQgUk1XIHJhY2UKICAgICAgICAg ICAgICAgICAgICAgIHNiLT5zX2ZsYWdzIHwgU0JfQk9STik7CgpEdXJpbmcgbW91bnQsIGxvYWRf c3lzdGVtX2ZpbGVzKCkgZG9lcyBub3QgcG9wdWxhdGUgdGhlIHJ1bmxpc3QgZm9yCiRCaXRtYXAs IHNvIGdldF9ucl9mcmVlX2NsdXN0ZXJzKCkgZGVjb21wcmVzc2VzICRCaXRtYXAncyBtYXBwaW5n IHBhaXJzIG9uCnRoZSB3b3JrcXVldWUgYW5kIGNhbGxzIG50ZnNfZXJyb3IoKSBpZiByZWFkaW5n IG9yIGRlY29tcHJlc3NpbmcgZmFpbHMuCgpCZWNhdXNlIG5laXRoZXIgc2lkZSB1cGRhdGVzIHNi LT5zX2ZsYWdzIGF0b21pY2FsbHkgYW5kIHRoZSBrd29ya2VyIGRvZXMKbm90IGhvbGQgc191bW91 bnQsIHRoZSBSTVcgaW4gbnRmc19oYW5kbGVfZXJyb3IoKSBjYW4gb3ZlcndyaXRlIFNCX0JPUk4K KGxlYXZpbmcgbGF0ZXIgc3VwZXJfbG9jaygpIGNhbGxlcnMgaHVuZyB3YWl0aW5nIGZvciBTQl9C T1JOKSBvciBsb3NlClNCX1JET05MWS4gIFRha2luZyB0aGUgIVNCX0JPUk4gYnJhbmNoIGZyb20g dGhlIHdvcmtxdWV1ZSBhbHNvIHNraXBzCk5Wb2xTZXRFcnJvcnModm9sKSBhbmQgTlZfRW1lcmdl bmN5Uk8sIGFsbG93aW5nIGEgc3Vic2VxdWVudCByZW1vdW50LHJ3IGluCm50ZnNfcmVjb25maWd1 cmUoKSB0byBzdWNjZWVkIGRlc3BpdGUgdGhlIGVycm9yLgoKLS0gClNhc2hpa28gQUkgcmV2aWV3 IMK3IGh0dHBzOi8vc2FzaGlrby5kZXYvIy9wYXRjaHNldC8yMDI2MTExMy13b3JrLWZzLXNiX3Jk b25seS12My0wLTBiZTkyYmI3MzcwOUBrZXJuZWwub3JnP3BhcnQ9MTkKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vz c2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0 aW5mby9saW51eC1tdGQvCg==