Re: [PATCH 2/3] bcachefs: stop using write_cache_pages
Christoph Hellwig <[email protected]> Tue, 19 Aug 2025 10:57:51 +0200
| Newsgroups | org.kernel.vger.linux-bcachefs,dev.linux.lists.ntfs3,org.kernel.vger.linux-fsdevel,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
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---