Message ID | 20220711041459.1062583-3-hch@lst.de (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/4] gfs2: stop using generic_writepages in gfs2_ail1_start_one | expand |
Am Mo., 11. Juli 2022 um 06:16 Uhr schrieb Christoph Hellwig <hch@lst.de>: > ->writepage is only used for single page writeback from memory reclaim, > and not called at all for cgroup writeback. Follow the lead of XFS > and remove ->writepage and rely entirely on ->writepages. > > Signed-off-by: Christoph Hellwig <hch@lst.de> > --- > fs/gfs2/aops.c | 26 -------------------------- > 1 file changed, 26 deletions(-) > > diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c > index 106e90a365838..0240a1a717f56 100644 > --- a/fs/gfs2/aops.c > +++ b/fs/gfs2/aops.c > @@ -81,31 +81,6 @@ static int gfs2_get_block_noalloc(struct inode *inode, sector_t lblock, > return 0; > } > > -/** > - * gfs2_writepage - Write page for writeback mappings > - * @page: The page > - * @wbc: The writeback control > - */ > -static int gfs2_writepage(struct page *page, struct writeback_control *wbc) > -{ > - struct inode *inode = page->mapping->host; > - struct gfs2_inode *ip = GFS2_I(inode); > - struct gfs2_sbd *sdp = GFS2_SB(inode); > - struct iomap_writepage_ctx wpc = { }; > - > - if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(ip->i_gl))) > - goto out; > - if (current->journal_info) > - goto redirty; > - return iomap_writepage(page, wbc, &wpc, &gfs2_writeback_ops); > - > -redirty: > - redirty_page_for_writepage(wbc, page); > -out: > - unlock_page(page); > - return 0; > -} > - > /** > * gfs2_write_jdata_page - gfs2 jdata-specific version of block_write_full_page > * @page: The page to write > @@ -765,7 +740,6 @@ bool gfs2_release_folio(struct folio *folio, gfp_t gfp_mask) > } > > static const struct address_space_operations gfs2_aops = { > - .writepage = gfs2_writepage, > .writepages = gfs2_writepages, > .read_folio = gfs2_read_folio, > .readahead = gfs2_readahead, > -- > 2.30.2 > This is looking fine, and it has survived a moderate amount of testing already. Tested-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com> It should be possible to remove the .writepage operation in gfs2_jdata_aops as well, but I must be overlooking something because that actually breaks things. Thanks, Andreas
On Tue, Jul 12, 2022 at 01:22:48AM +0200, Andreas Grünbacher wrote: > It should be possible to remove the .writepage operation in > gfs2_jdata_aops as well, but I must be overlooking something because > that actually breaks things. We'll need to wire up ->migratepage for it first to not lose any memory migration functinality. But yes, the plan is to eventually kill off ->writepage. If I can get you to look into gfs2_jdata_aops, gfs2_meta_aops and gfs2_rgrp_aops, that would be awesome.
diff --git a/fs/gfs2/aops.c b/fs/gfs2/aops.c index 106e90a365838..0240a1a717f56 100644 --- a/fs/gfs2/aops.c +++ b/fs/gfs2/aops.c @@ -81,31 +81,6 @@ static int gfs2_get_block_noalloc(struct inode *inode, sector_t lblock, return 0; } -/** - * gfs2_writepage - Write page for writeback mappings - * @page: The page - * @wbc: The writeback control - */ -static int gfs2_writepage(struct page *page, struct writeback_control *wbc) -{ - struct inode *inode = page->mapping->host; - struct gfs2_inode *ip = GFS2_I(inode); - struct gfs2_sbd *sdp = GFS2_SB(inode); - struct iomap_writepage_ctx wpc = { }; - - if (gfs2_assert_withdraw(sdp, gfs2_glock_is_held_excl(ip->i_gl))) - goto out; - if (current->journal_info) - goto redirty; - return iomap_writepage(page, wbc, &wpc, &gfs2_writeback_ops); - -redirty: - redirty_page_for_writepage(wbc, page); -out: - unlock_page(page); - return 0; -} - /** * gfs2_write_jdata_page - gfs2 jdata-specific version of block_write_full_page * @page: The page to write @@ -765,7 +740,6 @@ bool gfs2_release_folio(struct folio *folio, gfp_t gfp_mask) } static const struct address_space_operations gfs2_aops = { - .writepage = gfs2_writepage, .writepages = gfs2_writepages, .read_folio = gfs2_read_folio, .readahead = gfs2_readahead,
->writepage is only used for single page writeback from memory reclaim, and not called at all for cgroup writeback. Follow the lead of XFS and remove ->writepage and rely entirely on ->writepages. Signed-off-by: Christoph Hellwig <hch@lst.de> --- fs/gfs2/aops.c | 26 -------------------------- 1 file changed, 26 deletions(-)