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=1792758924; b=RfSSmiJHn2F5HKl5rs7quWMVV7/97ZWK/+IPR+T33zgvoJRAOAZ1F5jIOzf14NyP7WPp v+N5Fd/RhBLHIsGc8AKk0rc5+dUizpan75Rmd6ZwheGjRj83TwmgKL9RNLIdLn0RqAatd fIFyzgZJSLbgkKV1+4UyfHMTAW4j9pv4rQMuWQVgrBiwhd6wE+NyfoQnQUm9K8fcWy/KY cgQvnK8f3uz3yS6wtQxW7I+JE1AuzMGEFwn+0gOdd2aayzywm6KJQ15t6aimllXsNPIlf TWYAboHnvT5ETuKV/BTsNXBg89exni+pbxScYD4peCJ7SlOY+MheIfi7xxo/12mQTLQ== ARC-Message-Signature: i=1; d=subspace.kernel.org; s=arc20261015; a=rsa-sha256; c=relaxed/relaxed; t=1792758924; h=Received:DKIM-Signature:From:To:Cc:Subject:Date:Message-ID:X-Mailer: MIME-Version:Content-Transfer-Encoding; bh=dRvNq6pb6ywdYj3iS1o6fM4YSIqd7nISkOx7nY+yegk=; b=4VvRxHhtuTHwBpRaKY7zV7iJRPI8cN9T3tpwmXfhBpE1SSvnp6BGBTvgIyQqsm/3qpzq kGz4uCC4olU24Uyn14zZho0C1CjwBJFpzJ53HL3y3xX7ojhka4wbMmAR5/GaST262SuG1 gNStVB7npHB1mZ5KYi2PerNjIv7y2NPSbD/eVVei04riNPo23ULJ8S7wtZ2BDi0DorLms yIc2kjw9zVydJscDsXlRO1fXgfKAmftZK10JkwUYsiqbZRx6u9xGfyfd1fnzbgKCCUgns 11mGHO25KEiykx9ymZUr/kiMuBPkckTmbpCoeObzfXL3Lu1+eGMb7uXtEW9LGC9+DTA== 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=IPMpUAYf; 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 72B20606A321 for ; Fri, 23 Oct 2026 12:35:24 +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=IPMpUAYf Received: by smtp.kernel.org (Postfix) with ESMTPSA id 42B9A1F01825; Fri, 23 Oct 2026 12:35:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792758924; bh=dRvNq6pb6ywdYj3iS1o6fM4YSIqd7nISkOx7nY+yegk=; h=From:To:Cc:Subject:Date; b=IPMpUAYfBbjvhjzzvguVJ2skKOffxeCEnjhmCW96lbsm4BLNgHbYXI8V0hO9OcBwU frPYPb6qa189HzSUVL+GbR168xFF0QO7YFglfLZBkUJzhzikSiyHtAjZykMdakml1K Nttb4e6YOxGQWYfdiZSpIV/JgkoB7BtrZSVZFDWqxHIU++BgW/qlNg3rc6DOKDDeoW 68NYw3tJ3ydDcu0dLHVHiOKWlO/mr/XbWbbtdtGormtcHpBDJ+9Z4vl2ztqnR8frtU cDEZCJ4+3sRI5jZop6o+55kONO5u7JU4sQpjRuye4BW4U+udVBE6nmIEZMhwFc7maG 4HUEzS45GNaQw== From: Chao Yu To: jaegeuk@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Chao Yu , stable@kernel.org Subject: [PATCH 1/2] f2fs: fix to fetch ino via ino_of_node() under cache lock Date: Fri, 23 Oct 2026 20:35:17 +0800 Message-ID: <20261023123518.504064-1-chao@kernel.org> X-Mailer: git-send-email 2.56.0.307.g5fe7bd680c-goog X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Post: List-Help: List-Subscribe: List-Unsubscribe: List-Owner: Precedence: list MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Chao Yu In f2fs_writeback_node_caches(), it's better to fetch ino via ino_of_node() under cache lock, otherwise, node cache content may become stale after cache is unlocked due to racing w/ truncation. Commit 493b9dc8b52c ("f2fs: cache: use node cache") fixes similar issue in f2fs_flush_inline_data() introduced in commit 34c061ad85a2 ("f2fs: Avoid double lock for cp_rwsem during checkpoint"). Cc: stable@kernel.org Fixes: 2049d4fcb057 ("f2fs: avoid multiple node page writes due to inline_data") Signed-off-by: Chao Yu --- fs/f2fs/node.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index 424e95ca5878..44f94000d452 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -2195,9 +2195,11 @@ int f2fs_writeback_node_caches(struct f2fs_sb_info *sbi, long nr_to_write, /* flush inline_data */ if (f2fs_cache_test_inline(entry)) { + nid_t ino = ino_of_node(sbi, entry); + f2fs_cache_clear_inline(entry); f2fs_unlock_cache(entry); - flush_inline_data(sbi, ino_of_node(sbi, entry)); + flush_inline_data(sbi, ino); goto lock_node; } -- 2.49.0