X-Git-Url: http://bbs.cooldavid.org/git/?a=blobdiff_plain;f=mm%2Fpage_alloc.c;h=22b15a4cde8a7f79d8e0ec8407e6123750f69288;hb=cf40bd16fdad42c053040bcd3988f5fdedbb6c57;hp=5675b30738546451c47771e5703f06830a63898a;hpb=6f2b9b9a9d750a9175dc79c74bfed5add840983c;p=net-next-2.6.git diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 5675b307385..22b15a4cde8 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1479,6 +1479,8 @@ __alloc_pages_internal(gfp_t gfp_mask, unsigned int order, unsigned long did_some_progress; unsigned long pages_reclaimed = 0; + lockdep_trace_alloc(gfp_mask); + might_sleep_if(wait); if (should_fail_alloc_page(gfp_mask, order)) @@ -1578,12 +1580,15 @@ nofail_alloc: */ cpuset_update_task_memory_state(); p->flags |= PF_MEMALLOC; + + lockdep_set_current_reclaim_state(gfp_mask); reclaim_state.reclaimed_slab = 0; p->reclaim_state = &reclaim_state; did_some_progress = try_to_free_pages(zonelist, order, gfp_mask); p->reclaim_state = NULL; + lockdep_clear_current_reclaim_state(); p->flags &= ~PF_MEMALLOC; cond_resched();