mirror of https://gitee.com/openkylin/linux.git
mm: move _refcount out of struct page union
Keeping the refcount in the union only encourages people to put something else in the union which will overlap with _refcount and eventually explode messily. pahole reports no fields change location. Link: http://lkml.kernel.org/r/20180518194519.3820-7-willy@infradead.org Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Christoph Lameter <cl@linux.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Jérôme Glisse <jglisse@redhat.com> Cc: Lai Jiangshan <jiangshanlai@gmail.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
7d27a04bb2
commit
b21999da02
|
@ -113,7 +113,13 @@ struct page {
|
|||
};
|
||||
};
|
||||
|
||||
union {
|
||||
union { /* This union is 4 bytes in size. */
|
||||
/*
|
||||
* If the page can be mapped to userspace, encodes the number
|
||||
* of times this page is referenced by a page table.
|
||||
*/
|
||||
atomic_t _mapcount;
|
||||
|
||||
/*
|
||||
* If the page is neither PageSlab nor mappable to userspace,
|
||||
* the value stored here may help determine what this page
|
||||
|
@ -124,22 +130,11 @@ struct page {
|
|||
|
||||
unsigned int active; /* SLAB */
|
||||
int units; /* SLOB */
|
||||
|
||||
struct { /* Page cache */
|
||||
/*
|
||||
* Count of ptes mapped in mms, to show when
|
||||
* page is mapped & limit reverse map searches.
|
||||
*/
|
||||
atomic_t _mapcount;
|
||||
|
||||
/*
|
||||
* Usage count, *USE WRAPPER FUNCTION* when manual
|
||||
* accounting. See page_ref.h
|
||||
*/
|
||||
atomic_t _refcount;
|
||||
};
|
||||
};
|
||||
|
||||
/* Usage count. *DO NOT USE DIRECTLY*. See page_ref.h */
|
||||
atomic_t _refcount;
|
||||
|
||||
/*
|
||||
* WARNING: bit 0 of the first word encode PageTail(). That means
|
||||
* the rest users of the storage space MUST NOT use the bit to
|
||||
|
|
Loading…
Reference in New Issue