flex_array: add flex_array_shrink function
authorDavid Rientjes <rientjes@google.com>
Tue, 22 Sep 2009 00:04:31 +0000 (17:04 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 22 Sep 2009 14:17:47 +0000 (07:17 -0700)
commit4af5a2f770cc8575840ccb1514ec76ecb592985c
tree7af18234d7d171a946925e65e987fd51648be3aa
parent19da3dd157f8db6fe727ff268dab4791d55a6371
flex_array: add flex_array_shrink function

Add a new function to the flex_array API:

int flex_array_shrink(struct flex_array *fa)

This function will free all unused second-level pages.  Since elements are
now poisoned if they are not allocated with __GFP_ZERO, it's possible to
identify parts that consist solely of unused elements.

flex_array_shrink() returns the number of pages freed.

Signed-off-by: David Rientjes <rientjes@google.com>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/flex_array.h
lib/flex_array.c