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

Reply via email to