Linux 2.6.31-rc1
[pandora-kernel.git] / mm / memory.c
index 98bcb90..f46ac18 100644 (file)
@@ -1311,8 +1311,10 @@ int __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
                        while (!(page = follow_page(vma, start, foll_flags))) {
                                int ret;
 
-                               /* FOLL_WRITE matches FAULT_FLAG_WRITE! */
-                               ret = handle_mm_fault(mm, vma, start, foll_flags & FOLL_WRITE);
+                               ret = handle_mm_fault(mm, vma, start,
+                                       (foll_flags & FOLL_WRITE) ?
+                                       FAULT_FLAG_WRITE : 0);
+
                                if (ret & VM_FAULT_ERROR) {
                                        if (ret & VM_FAULT_OOM)
                                                return i ? i : -ENOMEM;
@@ -2517,7 +2519,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 */
+               grab_swap_token(mm); /* Contend for token _before_ read-in */
                page = swapin_readahead(entry,
                                        GFP_HIGHUSER_MOVABLE, vma, address);
                if (!page) {