diff options
author | Dave Hansen <dave.hansen@linux.intel.com> | 2014-04-08 16:44:27 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2014-04-11 03:06:06 -0400 |
commit | 34bf6ef94a835a8f1d8abd3e7d38c6c08d205867 (patch) | |
tree | a5e285e441036ed1d78033192b7eaf74300f4984 /include | |
parent | 5f0985bb1123b48bbfc632006bdbe76d3dfea76b (diff) |
mm: slab/slub: use page->list consistently instead of page->lru
'struct page' has two list_head fields: 'lru' and 'list'. Conveniently,
they are unioned together. This means that code can use them
interchangably, which gets horribly confusing like with this nugget from
slab.c:
> list_del(&page->lru);
> if (page->active == cachep->num)
> list_add(&page->list, &n->slabs_full);
This patch makes the slab and slub code use page->lru universally instead
of mixing ->list and ->lru.
So, the new rule is: page->lru is what the you use if you want to keep
your page on a list. Don't like the fact that it's not called ->list?
Too bad.
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Christoph Lameter <cl@linux.com>
Acked-by: David Rientjes <rientjes@google.com>
Cc: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mm_types.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 290901a8c1de..84b74080beb7 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
@@ -124,6 +124,8 @@ struct page { | |||
124 | union { | 124 | union { |
125 | struct list_head lru; /* Pageout list, eg. active_list | 125 | struct list_head lru; /* Pageout list, eg. active_list |
126 | * protected by zone->lru_lock ! | 126 | * protected by zone->lru_lock ! |
127 | * Can be used as a generic list | ||
128 | * by the page owner. | ||
127 | */ | 129 | */ |
128 | struct { /* slub per cpu partial pages */ | 130 | struct { /* slub per cpu partial pages */ |
129 | struct page *next; /* Next partial slab */ | 131 | struct page *next; /* Next partial slab */ |
@@ -136,7 +138,6 @@ struct page { | |||
136 | #endif | 138 | #endif |
137 | }; | 139 | }; |
138 | 140 | ||
139 | struct list_head list; /* slobs list of pages */ | ||
140 | struct slab *slab_page; /* slab fields */ | 141 | struct slab *slab_page; /* slab fields */ |
141 | struct rcu_head rcu_head; /* Used by SLAB | 142 | struct rcu_head rcu_head; /* Used by SLAB |
142 | * when destroying via RCU | 143 | * when destroying via RCU |