Re: [RFC PATCH v2] mm, netfs, fscache: Stop read optimisation when folio removed from pagecache

From: David Howells
Date: Mon Nov 14 2022 - 19:42:15 EST


Dominique Martinet <asmadeus@xxxxxxxxxxxxx> wrote:

> any harm in setting this if netfs isn't enabled?
> (just asking because you checked in fs/9p/cache.c above)

Well, it forces a call to ->release_folio() every time a folio is released, if
set, rather than just if PG_private/PG_private_2 is set.

> > +static inline void mapping_clear_release_always(struct address_space *mapping)
> > +{
> > + set_bit(AS_RELEASE_ALWAYS, &mapping->flags);
>
> clear_bit certainly?

Bah. Yes.

> > - if (folio_has_private(folio) && !filemap_release_folio(folio, 0))
> > + if (!filemap_release_folio(folio, 0))
>
> should this (and all others) check for folio_needs_release instead of has_private?
> filemap_release_folio doesn't check as far as I can see, but perhaps
> it's already fast and noop for another reason I didn't see.

Willy suggested merging the checks from folio_has_private() into
filemap_release_folio():

https://lore.kernel.org/r/Yk9V/03wgdYi65Lb@xxxxxxxxxxxxxxxxxxxx/

David