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? > > Signed-off-by: Christoph Hellwig <hch@xxxxxx> > --- > fs/bcachefs/fs-io-buffered.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/fs/bcachefs/fs-io-buffered.c b/fs/bcachefs/fs-io-buffered.c > index 1c54b9b5bd69..fdeaa25189f2 100644 > --- a/fs/bcachefs/fs-io-buffered.c > +++ b/fs/bcachefs/fs-io-buffered.c > @@ -655,6 +655,17 @@ static int __bch2_writepage(struct folio *folio, > return 0; > } > > +static int bch2_write_cache_pages(struct address_space *mapping, > + struct writeback_control *wbc, void *data) > +{ > + struct folio *folio = NULL; > + int error; > + > + 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 >