/* Writeback is about to end against a page which has been marked for immediate reclaim. If it still appears to be reclaimable, move it to the tail of the inactive list.  */
void rotate_reclaimable_page(struct page *page)
/* Writeback is about to end against a page which has been marked for immediate reclaim. If it still appears to be reclaimable, move it to the tail of the inactive list.  */
void rotate_reclaimable_page(struct page *page)
{
	if (!PageLocked(page) && !PageDirty(page) && !PageActive(page) &&
	    !PageUnevictable(page) && PageLRU(page)) {
		struct pagevec *pvec;
		unsigned long flags;
		page_cache_get(page);
		local_irq_save(flags);
		pvec = &__get_cpu_var(lru_rotate_pvecs);
		if (!pagevec_add(pvec, page))
			pagevec_move_tail(pvec);
		local_irq_restore(flags);
	}
}