Thread (128 messages) flat view 128 messages, 3 authors, 2021-06-28

Re: [PATCH v2 02/46] mm: Add folio_rmapping()

From: Matthew Wilcox <willy@infradead.org>
Date: 2021-06-24 15:52:16
Also in: linux-fsdevel, lkml

On Wed, Jun 23, 2021 at 09:56:58AM +0200, Christoph Hellwig wrote:
quoted
+static inline void *folio_rmapping(struct folio *folio)
This name, just like the old one is not exaclty descriptive.  I guess the
r stands for raw somehow?  As a casual contributor to the fringes of the
MM I would have no idea when to use it.

All this of course also applies to the existing (__)page_rmapping, but
maybe this is a good time to sort it out.
Yes, good point.  I don't like the name rmapping either, since
we already have rmap which has nothing to do with this.  I'll
leave page_rmapping() alone for now; no need to add that churn.
I think they all become calls to folio_raw_mapping() later.
quoted
 
 struct anon_vma *page_anon_vma(struct page *page)
 {
+	struct folio *folio = page_folio(page);
+	unsigned long mapping = (unsigned long)folio->mapping;
 
 	if ((mapping & PAGE_MAPPING_FLAGS) != PAGE_MAPPING_ANON)
 		return NULL;
+	return folio_rmapping(folio);
It feelds kinda silly to not just open code folio_rmapping here
given that we alredy went half the way. 
Yeah, I thought about that too.  Done:

-       return folio_rmapping(folio);
+       return (void *)(mapping - PAGE_MAPPING_ANON);

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help