Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0e44fbe1 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Namjae Jeon
Browse files

exfat: remove ->writepage

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: default avatarChristoph Hellwig <hch@lst.de>
Acked-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
Acked-by: default avatarJohannes 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarNamjae Jeon <linkinjeon@kernel.org>
parent 47fb2035
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -360,10 +360,12 @@ static int exfat_readpages(struct file *file, struct address_space *mapping,
}
#endif

#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
static int exfat_writepage(struct page *page, struct writeback_control *wbc)
{
	return block_write_full_page(page, exfat_get_block, wbc);
}
#endif

static int exfat_writepages(struct address_space *mapping,
		struct writeback_control *wbc)
@@ -531,12 +533,19 @@ static const struct address_space_operations exfat_aops = {
#else
	.readpages	= exfat_readpages,
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
	.writepage	= exfat_writepage,
#endif
	.writepages	= exfat_writepages,
	.write_begin	= exfat_write_begin,
	.write_end	= exfat_write_end,
	.direct_IO	= exfat_direct_IO,
#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 2, 0)
	.bmap		= exfat_aop_bmap
#else
	.bmap		= exfat_aop_bmap,
	.migrate_folio	= buffer_migrate_folio,
#endif
};

static inline unsigned long exfat_hash(loff_t i_pos)