ubifs: Convert to filemap_migrate_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 6 Jun 2022 14:47:21 +0000 (10:47 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 2 Aug 2022 16:34:04 +0000 (12:34 -0400)
filemap_migrate_folio() is a little more general than ubifs really needs,
but it's better to share the code.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
fs/ubifs/file.c

index 04ced15..f2353dd 100644 (file)
@@ -1461,29 +1461,6 @@ static bool ubifs_dirty_folio(struct address_space *mapping,
        return ret;
 }
 
-#ifdef CONFIG_MIGRATION
-static int ubifs_migrate_page(struct address_space *mapping,
-               struct page *newpage, struct page *page, enum migrate_mode mode)
-{
-       int rc;
-
-       rc = migrate_page_move_mapping(mapping, newpage, page, 0);
-       if (rc != MIGRATEPAGE_SUCCESS)
-               return rc;
-
-       if (PagePrivate(page)) {
-               detach_page_private(page);
-               attach_page_private(newpage, (void *)1);
-       }
-
-       if (mode != MIGRATE_SYNC_NO_COPY)
-               migrate_page_copy(newpage, page);
-       else
-               migrate_page_states(newpage, page);
-       return MIGRATEPAGE_SUCCESS;
-}
-#endif
-
 static bool ubifs_release_folio(struct folio *folio, gfp_t unused_gfp_flags)
 {
        struct inode *inode = folio->mapping->host;
@@ -1649,10 +1626,8 @@ const struct address_space_operations ubifs_file_address_operations = {
        .write_end      = ubifs_write_end,
        .invalidate_folio = ubifs_invalidate_folio,
        .dirty_folio    = ubifs_dirty_folio,
-#ifdef CONFIG_MIGRATION
-       .migratepage    = ubifs_migrate_page,
-#endif
-       .release_folio    = ubifs_release_folio,
+       .migrate_folio  = filemap_migrate_folio,
+       .release_folio  = ubifs_release_folio,
 };
 
 const struct inode_operations ubifs_file_inode_operations = {