]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: fix to do sanity check on node footer in __write_node_folio()
authorChao Yu <chao@kernel.org>
Mon, 12 Jan 2026 07:49:15 +0000 (15:49 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Sat, 17 Jan 2026 00:00:34 +0000 (00:00 +0000)
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>
fs/f2fs/node.c

index 00587e783b4403b13a7bd18f5c6a2efcabdc075f..30e26b878af0b8fa7da7b46c7226c3cdc97ec8a1 100644 (file)
@@ -1763,7 +1763,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;