projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
db4e5db
)
mm: use entire_mapcount in __page_dup_rmap()
author
Matthew Wilcox (Oracle)
<willy@infradead.org>
Wed, 11 Jan 2023 14:28:57 +0000
(14:28 +0000)
committer
Andrew Morton
<akpm@linux-foundation.org>
Fri, 3 Feb 2023 06:32:57 +0000
(22:32 -0800)
Remove the use of the compound_mapcount_ptr() wrapper, and add an
assertion that we're not passing a tail page if we're duplicating a PMD.
Link:
https://lkml.kernel.org/r/20230111142915.1001531-12-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/rmap.h
patch
|
blob
|
history
diff --git
a/include/linux/rmap.h
b/include/linux/rmap.h
index aa682a2a93ce3b2f8d01a6cc125338fda833c496..a6bd1f0a183d91b2753fe08baf5b0f101c0dac78 100644
(file)
--- a/
include/linux/rmap.h
+++ b/
include/linux/rmap.h
@@
-208,7
+208,14
@@
void hugepage_add_new_anon_rmap(struct page *, struct vm_area_struct *,
static inline void __page_dup_rmap(struct page *page, bool compound)
{
- atomic_inc(compound ? compound_mapcount_ptr(page) : &page->_mapcount);
+ if (compound) {
+ struct folio *folio = (struct folio *)page;
+
+ VM_BUG_ON_PAGE(compound && !PageHead(page), page);
+ atomic_inc(&folio->_entire_mapcount);
+ } else {
+ atomic_inc(&page->_mapcount);
+ }
}
static inline void page_dup_file_rmap(struct page *page, bool compound)