Am Mo., 11. Juli 2022 um 06:16 Uhr schrieb Christoph Hellwig <hch@xxxxxx>: > ->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@xxxxxx> > --- > 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@xxxxxxxxxx> Reviewed-by: Andreas Gruenbacher <agruenba@xxxxxxxxxx> 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