mm: remove unevictable's show_page_path

Hugh Dickins reported show_page_path() is buggy and unsafe because

 - lack dput() against d_find_alias()
 - don't concern vma->vm_mm->owner == NULL
 - lack lock_page()

it was only for debugging, so rather than trying to fix it, just remove
it now.

Reported-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
CC: Rik van Riel <riel@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
KOSAKI Motohiro 2008-11-14 16:25:01 +09:00 committed by Linus Torvalds
parent fb75109834
commit 748f1a2ed7

View File

@ -2368,39 +2368,6 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
return 1;
}
static void show_page_path(struct page *page)
{
char buf[256];
if (page_is_file_cache(page)) {
struct address_space *mapping = page->mapping;
struct dentry *dentry;
pgoff_t pgoff = page->index << (PAGE_CACHE_SHIFT - PAGE_SHIFT);
spin_lock(&mapping->i_mmap_lock);
dentry = d_find_alias(mapping->host);
printk(KERN_INFO "rescued: %s %lu\n",
dentry_path(dentry, buf, 256), pgoff);
spin_unlock(&mapping->i_mmap_lock);
} else {
#if defined(CONFIG_MM_OWNER) && defined(CONFIG_MMU)
struct anon_vma *anon_vma;
struct vm_area_struct *vma;
anon_vma = page_lock_anon_vma(page);
if (!anon_vma)
return;
list_for_each_entry(vma, &anon_vma->head, anon_vma_node) {
printk(KERN_INFO "rescued: anon %s\n",
vma->vm_mm->owner->comm);
break;
}
page_unlock_anon_vma(anon_vma);
#endif
}
}
/**
* check_move_unevictable_page - check page for evictability and move to appropriate zone lru list
* @page: page to check evictability and move to appropriate lru list
@ -2421,8 +2388,6 @@ static void check_move_unevictable_page(struct page *page, struct zone *zone)
if (page_evictable(page, NULL)) {
enum lru_list l = LRU_INACTIVE_ANON + page_is_file_cache(page);
show_page_path(page);
__dec_zone_state(zone, NR_UNEVICTABLE);
list_move(&page->lru, &zone->lru[l].list);
__inc_zone_state(zone, NR_INACTIVE_ANON + l);