extfat: remove ->writepage
authorChristoph Hellwig <hch@lst.de>
Fri, 2 Dec 2022 10:26:38 +0000 (11:26 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 12 Dec 2022 02:12:17 +0000 (18:12 -0800)
Patch series "start removing writepage instances v2".

The VM doesn't need or want ->writepage for writeback and is fine with
just having ->writepages as long as ->migrate_folio is implemented.

This series removes all ->writepage instances that use
block_write_full_page directly and also have a plain mpage_writepages
based ->writepages.

This patch (of 7):

->writepage is a very inefficient method to write back data, and only used
through write_cache_pages or a a fallback when no ->migrate_folio method
is present.

Set ->migrate_folio to the generic buffer_head based helper, and remove
the ->writepage implementation.

Link: https://lkml.kernel.org/r/20221202102644.770505-1-hch@lst.de
Link: https://lkml.kernel.org/r/20221202102644.770505-2-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Cc: Bob Copeland <me@bobcopeland.com>
Cc: Dave Kleikamp <shaggy@kernel.org>
Cc: Jan Kara <jack@suse.com>
Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/exfat/inode.c

index 5590a1e..eac95bc 100644 (file)
@@ -345,11 +345,6 @@ static void exfat_readahead(struct readahead_control *rac)
        mpage_readahead(rac, exfat_get_block);
 }
 
-static int exfat_writepage(struct page *page, struct writeback_control *wbc)
-{
-       return block_write_full_page(page, exfat_get_block, wbc);
-}
-
 static int exfat_writepages(struct address_space *mapping,
                struct writeback_control *wbc)
 {
@@ -473,12 +468,12 @@ static const struct address_space_operations exfat_aops = {
        .invalidate_folio = block_invalidate_folio,
        .read_folio     = exfat_read_folio,
        .readahead      = exfat_readahead,
-       .writepage      = exfat_writepage,
        .writepages     = exfat_writepages,
        .write_begin    = exfat_write_begin,
        .write_end      = exfat_write_end,
        .direct_IO      = exfat_direct_IO,
-       .bmap           = exfat_aop_bmap
+       .bmap           = exfat_aop_bmap,
+       .migrate_folio  = buffer_migrate_folio,
 };
 
 static inline unsigned long exfat_hash(loff_t i_pos)