Re: [RFC][PATCH] cifs: Fix cifs_writepages_region()

From: Matthew Wilcox
Date: Fri Feb 24 2023 - 11:12:12 EST


On Fri, Feb 24, 2023 at 02:31:15PM +0000, David Howells wrote:
> Here's the simplest fix for cifs_writepages_region() that gets it to work.
>
> Fix the cifs_writepages_region() to just skip over members of the batch that
> have been cleaned up rather than retrying them. I'm not entirely sure why it
> fixes it, though. It's also not the most efficient as, in the common case,
> this is going to happen a lot because cifs_extend_writeback() is going to
> clean up the contiguous pages in the batch - and then this skip will occur for
> those.

Why are you doing it this way? What's wrong with using
write_cache_pages() to push all the contiguous dirty folios into a single
I/O object, submitting it when the folios turn out not to be contiguous,
or when we run out of a batch?

You've written an awful lot of code here and it's a different model from
every other filesystem. Why is it better?