diff options
author | Andrew Morton <akpm@osdl.org> | 2004-04-26 09:02:05 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-04-26 09:02:05 -0700 |
commit | 65ea1afff7c4b1453996a7f8713dd132e5118a7c (patch) | |
tree | 57d867e642047dfa06fe9e07cb858a488a433a4b /mm | |
parent | c8c855b5251716b6a397a3350050711bd6dab217 (diff) | |
download | history-65ea1afff7c4b1453996a7f8713dd132e5118a7c.tar.gz |
[PATCH] simplify put_page()
By requiring that compound pages implement destructors we can drop some code
from put_page().
Diffstat (limited to 'mm')
-rw-r--r-- | mm/swap.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/mm/swap.c b/mm/swap.c index 5d267915d945d6..75e93e20119d0f 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -41,11 +41,10 @@ void put_page(struct page *page) if (unlikely(PageCompound(page))) { page = (struct page *)page->private; if (put_page_testzero(page)) { - if (page[1].mapping) { /* destructor? */ - (*(void (*)(struct page *))page[1].mapping)(page); - } else { - __page_cache_release(page); - } + void (*dtor)(struct page *page); + + dtor = (void (*)(struct page *))page[1].mapping; + (*dtor)(page); } return; } |