On Tue, Jan 30, 2024 at 03:04:59PM +0100, Christoph Hellwig wrote: > On Mon, Jan 29, 2024 at 03:13:47PM -0500, Brian Foster wrote: > > > @@ -2481,6 +2500,9 @@ int write_cache_pages(struct address_space *mapping, > > > folio_unlock(folio); > > > error = 0; > > > } > > > + > > > > JFYI: whitespace damage on the above line. > > Thanks, fixed. > > > > > > + if (error && !wbc->err) > > > + wbc->err = error; > > > > > > > Also what happened to the return of the above "first error encountered" > > for the WB_SYNC_ALL case? Is that not needed for some reason (and so the > > comment just below might require an update)? > > No, this got broken during the various rebases (and is fixed again later > in the series). We need to return wbc->err from write_cache_pages at > this stage, I'll fix it. > Ok, I noticed it was added back once I got to more of the iter abstraction bits and so figured it was a transient/unintentional thing. The above tweak makes sense to me. FWIW, I haven't stared at the final patch long enough to have a strong opinion. I tend to agree with Jan that the error handling logic in the current series is a little wonky in that it's one of those things I'd have to go read the implementation every time to remember what it does, but the broader changes all seem reasonable to me. So for patches 1-18 and with the above tweak: Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx>