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:
parent
fb75109834
commit
748f1a2ed7
1 changed files with 0 additions and 35 deletions
35
mm/vmscan.c
35
mm/vmscan.c
|
@ -2368,39 +2368,6 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
|
||||||
return 1;
|
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
|
* 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
|
* @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)) {
|
if (page_evictable(page, NULL)) {
|
||||||
enum lru_list l = LRU_INACTIVE_ANON + page_is_file_cache(page);
|
enum lru_list l = LRU_INACTIVE_ANON + page_is_file_cache(page);
|
||||||
|
|
||||||
show_page_path(page);
|
|
||||||
|
|
||||||
__dec_zone_state(zone, NR_UNEVICTABLE);
|
__dec_zone_state(zone, NR_UNEVICTABLE);
|
||||||
list_move(&page->lru, &zone->lru[l].list);
|
list_move(&page->lru, &zone->lru[l].list);
|
||||||
__inc_zone_state(zone, NR_INACTIVE_ANON + l);
|
__inc_zone_state(zone, NR_INACTIVE_ANON + l);
|
||||||
|
|
Loading…
Reference in a new issue