*/
 static __always_inline void __clear_page_lru_flags(struct page *page)
 {
+       VM_BUG_ON_PAGE(!PageLRU(page), page);
+
        __ClearPageLRU(page);
 
        /* this shouldn't happen, so leave the flags to bad_page() */
 {
        enum lru_list lru;
 
+       VM_BUG_ON_PAGE(PageActive(page) && PageUnevictable(page), page);
+
        if (PageUnevictable(page))
                lru = LRU_UNEVICTABLE;
        else {
 
                unsigned long flags;
 
                lruvec = lock_page_lruvec_irqsave(page, &flags);
-               VM_BUG_ON_PAGE(!PageLRU(page), page);
                del_page_from_lru_list(page, lruvec);
                __clear_page_lru_flags(page);
                unlock_page_lruvec_irqrestore(lruvec, flags);
                        if (prev_lruvec != lruvec)
                                lock_batch = 0;
 
-                       VM_BUG_ON_PAGE(!PageLRU(page), page);
                        del_page_from_lru_list(page, lruvec);
                        __clear_page_lru_flags(page);
                }
 
 
                lruvec = relock_page_lruvec_irq(page, lruvec);
                if (page_evictable(page) && PageUnevictable(page)) {
-                       VM_BUG_ON_PAGE(PageActive(page), page);
                        del_page_from_lru_list(page, lruvec);
                        ClearPageUnevictable(page);
                        add_page_to_lru_list(page, lruvec);