|
@@ -3420,9 +3420,10 @@ unlock:
|
|
|
* The mmap_sem may have been released depending on flags and our
|
|
|
* return value. See filemap_fault() and __lock_page_or_retry().
|
|
|
*/
|
|
|
-static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
|
- unsigned long address, unsigned int flags)
|
|
|
+static int __handle_mm_fault(struct vm_area_struct *vma, unsigned long address,
|
|
|
+ unsigned int flags)
|
|
|
{
|
|
|
+ struct mm_struct *mm = vma->vm_mm;
|
|
|
pgd_t *pgd;
|
|
|
pud_t *pud;
|
|
|
pmd_t *pmd;
|
|
@@ -3509,15 +3510,15 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
|
* The mmap_sem may have been released depending on flags and our
|
|
|
* return value. See filemap_fault() and __lock_page_or_retry().
|
|
|
*/
|
|
|
-int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
|
- unsigned long address, unsigned int flags)
|
|
|
+int handle_mm_fault(struct vm_area_struct *vma, unsigned long address,
|
|
|
+ unsigned int flags)
|
|
|
{
|
|
|
int ret;
|
|
|
|
|
|
__set_current_state(TASK_RUNNING);
|
|
|
|
|
|
count_vm_event(PGFAULT);
|
|
|
- mem_cgroup_count_vm_event(mm, PGFAULT);
|
|
|
+ mem_cgroup_count_vm_event(vma->vm_mm, PGFAULT);
|
|
|
|
|
|
/* do counter updates before entering really critical section. */
|
|
|
check_sync_rss_stat(current);
|
|
@@ -3529,7 +3530,7 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
|
|
|
if (flags & FAULT_FLAG_USER)
|
|
|
mem_cgroup_oom_enable();
|
|
|
|
|
|
- ret = __handle_mm_fault(mm, vma, address, flags);
|
|
|
+ ret = __handle_mm_fault(vma, address, flags);
|
|
|
|
|
|
if (flags & FAULT_FLAG_USER) {
|
|
|
mem_cgroup_oom_disable();
|