diff options
author | Andy Whitcroft <apw@shadowen.org> | 2006-12-06 20:33:32 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 08:39:25 -0800 |
commit | 33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b (patch) | |
tree | b90eac24ff367bc628c44eaa51a9f0ea1b69d1a4 /mm/page_alloc.c | |
parent | 3c517a6132098ca37e122a2980fc64a9e798b0d7 (diff) | |
download | linux-3.10-33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b.tar.gz linux-3.10-33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b.tar.bz2 linux-3.10-33f2ef89f8e181486b63fdbdc97c6afa6ca9f34b.zip |
[PATCH] mm: make compound page destructor handling explicit
Currently we we use the lru head link of the second page of a compound page
to hold its destructor. This was ok when it was purely an internal
implmentation detail. However, hugetlbfs overrides this destructor
violating the layering. Abstract this out as explicit calls, also
introduce a type for the callback function allowing them to be type
checked. For each callback we pre-declare the function, causing a type
error on definition rather than on use elsewhere.
[akpm@osdl.org: cleanups]
Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/page_alloc.c')
-rw-r--r-- | mm/page_alloc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index dc8753bdd47..d539f83c62b 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -230,7 +230,7 @@ static void prep_compound_page(struct page *page, unsigned long order) int i; int nr_pages = 1 << order; - page[1].lru.next = (void *)free_compound_page; /* set dtor */ + set_compound_page_dtor(page, free_compound_page); page[1].lru.prev = (void *)order; for (i = 0; i < nr_pages; i++) { struct page *p = page + i; |