diff options
Diffstat (limited to 'mm/filemap.c')
| -rw-r--r-- | mm/filemap.c | 11 | 
1 files changed, 1 insertions, 10 deletions
| diff --git a/mm/filemap.c b/mm/filemap.c index 1e6aec4a2d2e..ae4846ff4849 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
| @@ -1616,7 +1616,6 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | |||
| 1616 | struct inode *inode = mapping->host; | 1616 | struct inode *inode = mapping->host; | 
| 1617 | pgoff_t offset = vmf->pgoff; | 1617 | pgoff_t offset = vmf->pgoff; | 
| 1618 | struct page *page; | 1618 | struct page *page; | 
| 1619 | bool memcg_oom; | ||
| 1620 | pgoff_t size; | 1619 | pgoff_t size; | 
| 1621 | int ret = 0; | 1620 | int ret = 0; | 
| 1622 | 1621 | ||
| @@ -1625,11 +1624,7 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | |||
| 1625 | return VM_FAULT_SIGBUS; | 1624 | return VM_FAULT_SIGBUS; | 
| 1626 | 1625 | ||
| 1627 | /* | 1626 | /* | 
| 1628 | * Do we have something in the page cache already? Either | 1627 | * Do we have something in the page cache already? | 
| 1629 | * way, try readahead, but disable the memcg OOM killer for it | ||
| 1630 | * as readahead is optional and no errors are propagated up | ||
| 1631 | * the fault stack. The OOM killer is enabled while trying to | ||
| 1632 | * instantiate the faulting page individually below. | ||
| 1633 | */ | 1628 | */ | 
| 1634 | page = find_get_page(mapping, offset); | 1629 | page = find_get_page(mapping, offset); | 
| 1635 | if (likely(page) && !(vmf->flags & FAULT_FLAG_TRIED)) { | 1630 | if (likely(page) && !(vmf->flags & FAULT_FLAG_TRIED)) { | 
| @@ -1637,14 +1632,10 @@ int filemap_fault(struct vm_area_struct *vma, struct vm_fault *vmf) | |||
| 1637 | * We found the page, so try async readahead before | 1632 | * We found the page, so try async readahead before | 
| 1638 | * waiting for the lock. | 1633 | * waiting for the lock. | 
| 1639 | */ | 1634 | */ | 
| 1640 | memcg_oom = mem_cgroup_toggle_oom(false); | ||
| 1641 | do_async_mmap_readahead(vma, ra, file, page, offset); | 1635 | do_async_mmap_readahead(vma, ra, file, page, offset); | 
| 1642 | mem_cgroup_toggle_oom(memcg_oom); | ||
| 1643 | } else if (!page) { | 1636 | } else if (!page) { | 
| 1644 | /* No page in the page cache at all */ | 1637 | /* No page in the page cache at all */ | 
| 1645 | memcg_oom = mem_cgroup_toggle_oom(false); | ||
| 1646 | do_sync_mmap_readahead(vma, ra, file, offset); | 1638 | do_sync_mmap_readahead(vma, ra, file, offset); | 
| 1647 | mem_cgroup_toggle_oom(memcg_oom); | ||
| 1648 | count_vm_event(PGMAJFAULT); | 1639 | count_vm_event(PGMAJFAULT); | 
| 1649 | mem_cgroup_count_vm_event(vma->vm_mm, PGMAJFAULT); | 1640 | mem_cgroup_count_vm_event(vma->vm_mm, PGMAJFAULT); | 
| 1650 | ret = VM_FAULT_MAJOR; | 1641 | ret = VM_FAULT_MAJOR; | 
