Daeho,
As Zhiguo's reminder, I missed that f2fs_update_meta_page() has the same issue
as well,
so we need to use f2fs_grab_meta_folio() in f2fs_update_meta_page() as well.
Thanks Zhiguo for code review and reminder.
Let me know if I missed something.
On 11/10/25 23:35, Daeho Jeong wrote:
> void f2fs_update_meta_page(struct f2fs_sb_info *sbi,
> void *src, block_t blk_addr)
> {
struct folio *folio;
if (SUMS_PER_BLOCK == 1)
folio = f2fs_grab_meta_folio(sbi, blk_addr);
else
folio = f2fs_get_meta_folio_retry(sbi, blk_addr);
> - struct folio *folio = f2fs_grab_meta_folio(sbi, blk_addr);
> + struct folio *folio = f2fs_get_meta_folio_retry(sbi, blk_addr);
> +
> + if (IS_ERR(folio))
> + return;
>
> memcpy(folio_address(folio), src, PAGE_SIZE);
> folio_mark_dirty(folio);
> @@ -2720,9 +2723,21 @@ void f2fs_update_meta_page(struct f2fs_sb_info *sbi,
> }
>
> static void write_sum_page(struct f2fs_sb_info *sbi,
> - struct f2fs_summary_block *sum_blk, block_t blk_addr)
> + struct f2fs_summary_block *sum_blk, unsigned int segno)
> {
> - f2fs_update_meta_page(sbi, (void *)sum_blk, blk_addr);
> + struct folio *folio;
> +
> + if (SUMS_PER_BLOCK == 1)
> + return f2fs_update_meta_page(sbi, (void *)sum_blk,
> + GET_SUM_BLOCK(sbi, segno));
> +
> + folio = f2fs_get_sum_folio(sbi, segno);
> + if (IS_ERR(folio))
> + return;
> +
> + memcpy(SUM_BLK_PAGE_ADDR(folio, segno), sum_blk, sizeof(*sum_blk));
> + folio_mark_dirty(folio);
> + f2fs_folio_put(folio, true);
> }
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel