diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 266c4b5579463c177d8e9407e9eae6d45cad7037..0ea6510a3be715e99e312c211e32fc6bb9d9cbe7 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2835,6 +2835,9 @@ void deferred_split_huge_page(struct page *page) if (PageSwapCache(page)) return; + if (!list_empty(page_deferred_list(page))) + return; + spin_lock_irqsave(&ds_queue->split_queue_lock, flags); if (list_empty(page_deferred_list(page))) { count_vm_event(THP_DEFERRED_SPLIT_PAGE);