|
@@ -514,6 +514,13 @@ void page_add_file_rmap(struct page *page)
|
|
void page_remove_rmap(struct page *page)
|
|
void page_remove_rmap(struct page *page)
|
|
{
|
|
{
|
|
if (atomic_add_negative(-1, &page->_mapcount)) {
|
|
if (atomic_add_negative(-1, &page->_mapcount)) {
|
|
|
|
+ if (page_mapcount(page) < 0) {
|
|
|
|
+ printk (KERN_EMERG "Eeek! page_mapcount(page) went negative! (%d)\n", page_mapcount(page));
|
|
|
|
+ printk (KERN_EMERG " page->flags = %lx\n", page->flags);
|
|
|
|
+ printk (KERN_EMERG " page->count = %x\n", page_count(page));
|
|
|
|
+ printk (KERN_EMERG " page->mapping = %p\n", page->mapping);
|
|
|
|
+ }
|
|
|
|
+
|
|
BUG_ON(page_mapcount(page) < 0);
|
|
BUG_ON(page_mapcount(page) < 0);
|
|
/*
|
|
/*
|
|
* It would be tidy to reset the PageAnon mapping here,
|
|
* It would be tidy to reset the PageAnon mapping here,
|