Re: [PATCH 07/12] writeback: Factor writeback_iter_init() out of write_cache_pages()

From: Matthew Wilcox
Date: Tue Jun 27 2023 - 07:08:42 EST


On Mon, Jun 26, 2023 at 09:31:56PM -0700, Christoph Hellwig wrote:
> On Mon, Jun 26, 2023 at 09:30:07PM -0700, Christoph Hellwig wrote:
> > On Mon, Jun 26, 2023 at 06:35:16PM +0100, Matthew Wilcox (Oracle) wrote:
> > > + for (folio = writeback_iter_init(mapping, wbc);
> > > + folio;
> > > + folio = writeback_get_next(mapping, wbc)) {
> >
> > Ok that's another way to structure it. Guess I should look over the
> > whole series first..

Perhaps ... it's a little hard to decide which of your comments
are worth replying to, and which are obviated by later realisations.

> That beeing said. Given that writeback_iter_init calls
> writeback_get_next anyway,
>
> writeback_iter_init(mapping, wbc);
> while ((folio = writeback_get_next(mapping, wbc)))
>
> still feels a little easier to follow to be. No hard feelings either
> way, just an observation.

I had it structured that way originally, but we need to pass in 'error'
to the get_next, and it's better if we also pass in 'folio', which means
that the user then needs to initialise error to 0 and folio to NULL
before using the macro, and that all felt a bit "You're holding it wrong".