|
@@ -546,6 +546,7 @@ static void free_huge_page(struct page *page)
|
|
|
|
|
|
mapping = (struct address_space *) page_private(page);
|
|
|
set_page_private(page, 0);
|
|
|
+ page->mapping = NULL;
|
|
|
BUG_ON(page_count(page));
|
|
|
INIT_LIST_HEAD(&page->lru);
|
|
|
|
|
@@ -2447,8 +2448,10 @@ retry:
|
|
|
spin_lock(&inode->i_lock);
|
|
|
inode->i_blocks += blocks_per_huge_page(h);
|
|
|
spin_unlock(&inode->i_lock);
|
|
|
- } else
|
|
|
+ } else {
|
|
|
lock_page(page);
|
|
|
+ page->mapping = HUGETLB_POISON;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
/*
|