On Fri, Feb 24, 2023 at 6:48 AM David Howells <dhowells@xxxxxxxxxx> wrote: > > Here's a more complex patch that reverts Vishal's patch to afs and your > changes to cifs back to the point where find_get_pages_range_tag() was > being used to get a single folio and then replace that with a function, > filemap_get_folio_tag() that just gets a single folio. An alternative way > of doing this would be to make filemap_get_folios_tag() take a limit count. Ack. I think this is the right thing to do. Except we should at a minimum split this into two patches, with the first one introducing that filemap_get_folio_tag() helper function that makes the whole find_get_pages_range_tag() conversion much simpler. In fact, probably three patches - infrastructure, cifs and afs separately. Just to make each patch simpler to look at for people who care about that particular area. And I'd still like to know why that 'skips' logic exists, it seems to be shared with afs. The fact that it actually seems to change semantics by your testing makes me even more suspicious of it than I was when I was doing that "skip_write" thing. (But the change I did was to treat _all_ the skipped writes the same, while the old - and your revert - behavior is to only do the skip counting for the "already under writeback" case. But it still stinks to me). Linus