]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
f2fs: fix to do sanity check on node footer in __write_node_folio()
authorChao Yu <chao@kernel.org>
Tue, 17 Feb 2026 17:42:37 +0000 (12:42 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Feb 2026 15:31:36 +0000 (16:31 +0100)
[ Upstream commit 0a736109c9d29de0c26567e42cb99b27861aa8ba ]

Add node footer sanity check during node folio's writeback, if sanity
check fails, let's shutdown filesystem to avoid looping to redirty
and writeback in .writepages.

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/f2fs/node.c

index 3dacc90ee9a6cfd3e1e43f4d11ae7025b00d932e..fc3110efb49848adf0a0c114d273eba544cf82ca 100644 (file)
@@ -1751,7 +1751,11 @@ static bool __write_node_folio(struct folio *folio, bool atomic, bool *submitted
 
        /* get old block addr of this node page */
        nid = nid_of_node(folio);
-       f2fs_bug_on(sbi, folio->index != nid);
+
+       if (sanity_check_node_footer(sbi, folio, nid, NODE_TYPE_REGULAR)) {
+               f2fs_handle_critical_error(sbi, STOP_CP_REASON_CORRUPTED_NID);
+               goto redirty_out;
+       }
 
        if (f2fs_get_node_info(sbi, nid, &ni, !do_balance))
                goto redirty_out;