hugetlb: make unmap_ref_private multi-size-aware
authorAdam Litke <agl@us.ibm.com>
Wed, 12 Nov 2008 21:24:56 +0000 (13:24 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 13 Nov 2008 01:17:16 +0000 (17:17 -0800)
commit7526674de0c921e7f1e9b6f71a1f9d832557b554
tree9b40d13ecd775197b74fcb396d6aba7ce5ea589e
parentb5f1f5557fd83fe92bdf2d2e80e431d655464d6c
hugetlb: make unmap_ref_private multi-size-aware

Oops.  Part of the hugetlb private reservation code was not fully
converted to use hstates.

When a huge page must be unmapped from VMAs due to a failed COW,
HPAGE_SIZE is used in the call to unmap_hugepage_range() regardless of
the page size being used.  This works if the VMA is using the default
huge page size.  Otherwise we might unmap too much, too little, or
trigger a BUG_ON.  Rare but serious -- fix it.

Signed-off-by: Adam Litke <agl@us.ibm.com>
Cc: Jon Tollefson <kniht@linux.vnet.ibm.com>
Cc: Mel Gorman <mel@csn.ul.ie>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/hugetlb.c