Message ID | 20221113162902.883850-5-hch@lst.de (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/9] extfat: remove ->writepage | expand |
On Sun, Nov 13, 2022 at 05:28:57PM +0100, Christoph Hellwig wrote: > ->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 stop > wiring up ->writepage for hfs_aops. > > Signed-off-by: Christoph Hellwig <hch@lst.de> Was there a reason you only did this for hfs_aops and not for hfs_btree_aops? It feels like anything that just calls block_write_full_page() in the writepage handler should be converted to just calling mpage_writepages() in the writepages handler. I have a few of those conversions done, but obviously they're in filesystems that are basically untestable.
On Thu, Dec 14, 2023 at 07:01:25PM +0000, Matthew Wilcox wrote: > Was there a reason you only did this for hfs_aops and not for > hfs_btree_aops? It feels like anything that just calls > block_write_full_page() in the writepage handler should be converted > to just calling mpage_writepages() in the writepages handler. > I have a few of those conversions done, but obviously they're in > filesystems that are basically untestable. Probably. I remember I had a good reason to skip, and the lack of testability might have been it. Note that for hfsplus in particular we should actually be able to test now that the port of the hfs userspace has returned to distros. I haven't actually gotten to see what the test baseline looks like, though.
diff --git a/fs/hfs/inode.c b/fs/hfs/inode.c index c4526f16355d5..16466a5e88b44 100644 --- a/fs/hfs/inode.c +++ b/fs/hfs/inode.c @@ -173,12 +173,12 @@ const struct address_space_operations hfs_aops = { .dirty_folio = block_dirty_folio, .invalidate_folio = block_invalidate_folio, .read_folio = hfs_read_folio, - .writepage = hfs_writepage, .write_begin = hfs_write_begin, .write_end = generic_write_end, .bmap = hfs_bmap, .direct_IO = hfs_direct_IO, .writepages = hfs_writepages, + .migrate_folio = buffer_migrate_folio, }; /*
->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 stop wiring up ->writepage for hfs_aops. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/hfs/inode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)