On Mon, Aug 18, 2025 at 07:17:15AM -0400, Kent Overstreet wrote:
> On Mon, Aug 18, 2025 at 08:10:09AM +0200, Christoph Hellwig wrote:
> > Stop using the obsolete write_cache_pages and use writeback_iter
> > directly. This basically just open codes write_cache_pages
> > without the indirect call, but there's probably ways to structure
> > the code even nicer as a follow on.
>
> Wouldn't inlining write_cache_pages() achieve the same thing?
It might eliminate the indirect calls with the right compiler or
options, but not archieve any of the other goals, and leave us
with a helper implementing a pointless callback pattern for 1 user.
> > +
> > + while ((folio = writeback_iter(mapping, wbc, folio, &error)))
> > + error = __bch2_writepage(folio, wbc, data);
> > + return error;
> > +}
> > +
> > int bch2_writepages(struct address_space *mapping, struct
> > writeback_control *wbc)
> > {
> > struct bch_fs *c = mapping->host->i_sb->s_fs_info;
> > @@ -663,7 +674,7 @@ int bch2_writepages(struct address_space *mapping,
> > struct writeback_control *wbc
> > bch2_inode_opts_get(&w->opts, c, &to_bch_ei(mapping->host)->ei_inode);
> >
> > blk_start_plug(&w->plug);
> > - int ret = write_cache_pages(mapping, wbc, __bch2_writepage, w);
> > + int ret = bch2_write_cache_pages(mapping, wbc, w);
> > if (w->io)
> > bch2_writepage_do_io(w);
> > blk_finish_plug(&w->plug);
> > --
> > 2.47.2
> >
---end quoted text---