Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 748f1a2e authored by KOSAKI Motohiro's avatar KOSAKI Motohiro Committed by Linus Torvalds
Browse files

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: default avatarHugh Dickins <hugh@veritas.com>
Signed-off-by: default avatarHugh Dickins <hugh@veritas.com>
Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
CC: Rik van Riel <riel@redhat.com>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent fb751098
Loading
Loading
Loading
Loading
+0 −35
Original line number Diff line number Diff line
@@ -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);