Re: [PATCH v2 12/19] btrfs: Convert btrfs_migratepage to migrate_folio

From: David Sterba
Date: Thu Jun 09 2022 - 12:38:02 EST


On Wed, Jun 08, 2022 at 04:02:42PM +0100, Matthew Wilcox (Oracle) wrote:
> Use filemap_migrate_folio() to do the bulk of the work, and then copy
> the ordered flag across if needed.
>
> Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx>
> Reviewed-by: Christoph Hellwig <hch@xxxxxx>

Acked-by: David Sterba <dsterba@xxxxxxxx>

> +static int btrfs_migrate_folio(struct address_space *mapping,
> + struct folio *dst, struct folio *src,
> enum migrate_mode mode)
> {
> - int ret;
> + int ret = filemap_migrate_folio(mapping, dst, src, mode);
>
> - ret = migrate_page_move_mapping(mapping, newpage, page, 0);
> if (ret != MIGRATEPAGE_SUCCESS)
> return ret;
>
> - if (page_has_private(page))
> - attach_page_private(newpage, detach_page_private(page));

If I'm reading it correctly, the private pointer does not need to be set
like that anymore because it's done somewhere during the
filemap_migrate_folio() call.

> -
> - if (PageOrdered(page)) {
> - ClearPageOrdered(page);
> - SetPageOrdered(newpage);
> + if (folio_test_ordered(src)) {
> + folio_clear_ordered(src);
> + folio_set_ordered(dst);
> }