diff --git a/[refs] b/[refs] index 175461937e68..05c04e33d34a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: cd54e7e54318d333227b13186f9a464bf1f68d27 +refs/heads/master: 098fe651f7e9d759d1117c78c1a642b9b3945922 diff --git a/trunk/mm/filemap.c b/trunk/mm/filemap.c index 13df01c50479..af7e2f5caea9 100644 --- a/trunk/mm/filemap.c +++ b/trunk/mm/filemap.c @@ -1445,7 +1445,6 @@ struct page *filemap_nopage(struct vm_area_struct *area, * effect. */ error = page_cache_read(file, pgoff); - grab_swap_token(); /* * The page we want has now been added to the page cache. diff --git a/trunk/mm/memory.c b/trunk/mm/memory.c index 156861fcac43..a07120da868b 100644 --- a/trunk/mm/memory.c +++ b/trunk/mm/memory.c @@ -1991,6 +1991,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, delayacct_set_flag(DELAYACCT_PF_SWAPIN); page = lookup_swap_cache(entry); if (!page) { + grab_swap_token(); /* Contend for token _before_ read-in */ swapin_readahead(entry, address, vma); page = read_swap_cache_async(entry, vma, address); if (!page) { @@ -2008,7 +2009,6 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma, /* Had to read the page from swap area: Major fault */ ret = VM_FAULT_MAJOR; count_vm_event(PGMAJFAULT); - grab_swap_token(); } delayacct_clear_flag(DELAYACCT_PF_SWAPIN);