diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 8d4f1e75dee3..c149b0ccf22d 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -382,11 +382,11 @@ static void f2fs_write_end_io(struct bio *bio) STOP_CP_REASON_WRITE_FAIL); } - if (is_node_folio(folio)) { - f2fs_sanity_check_node_footer(sbi, folio, - folio->index, NODE_TYPE_REGULAR, true); - f2fs_bug_on(sbi, folio->index != nid_of_node(folio)); - } + if (is_node_folio(folio) && + f2fs_sanity_check_node_footer(sbi, folio, + folio->index, NODE_TYPE_REGULAR, true)) + bio->bi_status = BLK_STS_IOERR; + if (f2fs_in_warm_node_list(folio)) f2fs_del_fsync_node_entry(sbi, folio);