Merge branch 'akpm' (patches from Andrew)
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 03:29:24 +0000 (19:29 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 03:29:24 +0000 (19:29 -0800)
Merge updates from Andrew Morton:
 "142 patches:

   - DAX updates

   - various misc bits

   - OCFS2 updates

   - most of MM"

* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (142 commits)
  mm/z3fold.c: limit first_num to the actual range of possible buddy indexes
  mm: fix <linux/pagemap.h> stray kernel-doc notation
  zram: remove obsolete sysfs attrs
  mm/memblock.c: remove unnecessary log and clean up
  oom-reaper: use madvise_dontneed() logic to decide if unmap the VMA
  mm: drop unused argument of zap_page_range()
  mm: drop zap_details::check_swap_entries
  mm: drop zap_details::ignore_dirty
  mm, page_alloc: warn_alloc nodemask is NULL when cpusets are disabled
  mm: help __GFP_NOFAIL allocations which do not trigger OOM killer
  mm, oom: do not enforce OOM killer for __GFP_NOFAIL automatically
  mm: consolidate GFP_NOFAIL checks in the allocator slowpath
  lib/show_mem.c: teach show_mem to work with the given nodemask
  arch, mm: remove arch specific show_mem
  mm, page_alloc: warn_alloc print nodemask
  mm, page_alloc: do not report all nodes in show_mem
  Revert "mm: bail out in shrink_inactive_list()"
  mm, vmscan: consider eligible zones in get_scan_count
  mm, vmscan: cleanup lru size claculations
  mm, vmscan: do not count freed pages as PGDEACTIVATE
  ...

1  2 
Documentation/vm/transhuge.txt
MAINTAINERS
fs/dax.c
fs/xfs/xfs_file.c
include/linux/dax.h
init/Kconfig

Simple merge
diff --cc MAINTAINERS
Simple merge
diff --cc fs/dax.c
index 99b5b4458a786366a73a442817aaef1d37297267,d800197aba34e5ec3a60499fc2a6c38697ac9a5d..3f1181563fb173a268147f8626a072ac289269fa
+++ b/fs/dax.c
@@@ -1309,28 -1317,33 +1317,33 @@@ static int dax_pmd_load_hole(struct vm_
        ret = dax_insert_mapping_entry(mapping, vmf, *entryp, 0,
                        RADIX_DAX_PMD | RADIX_DAX_HZP);
        if (IS_ERR(ret))
-               return VM_FAULT_FALLBACK;
+               goto fallback;
        *entryp = ret;
  
-       ptl = pmd_lock(vma->vm_mm, pmd);
-       if (!pmd_none(*pmd)) {
+       ptl = pmd_lock(vmf->vma->vm_mm, vmf->pmd);
+       if (!pmd_none(*(vmf->pmd))) {
                spin_unlock(ptl);
-               return VM_FAULT_FALLBACK;
+               goto fallback;
        }
  
-       pmd_entry = mk_pmd(zero_page, vma->vm_page_prot);
+       pmd_entry = mk_pmd(zero_page, vmf->vma->vm_page_prot);
        pmd_entry = pmd_mkhuge(pmd_entry);
-       set_pmd_at(vma->vm_mm, pmd_addr, pmd, pmd_entry);
+       set_pmd_at(vmf->vma->vm_mm, pmd_addr, vmf->pmd, pmd_entry);
        spin_unlock(ptl);
+       trace_dax_pmd_load_hole(inode, vmf, zero_page, ret);
        return VM_FAULT_NOPAGE;
+ fallback:
+       trace_dax_pmd_load_hole_fallback(inode, vmf, zero_page, ret);
+       return VM_FAULT_FALLBACK;
  }
  
- int dax_iomap_pmd_fault(struct vm_area_struct *vma, unsigned long address,
-               pmd_t *pmd, unsigned int flags, const struct iomap_ops *ops)
 -int dax_iomap_pmd_fault(struct vm_fault *vmf, struct iomap_ops *ops)
++int dax_iomap_pmd_fault(struct vm_fault *vmf, const struct iomap_ops *ops)
  {
+       struct vm_area_struct *vma = vmf->vma;
        struct address_space *mapping = vma->vm_file->f_mapping;
-       unsigned long pmd_addr = address & PMD_MASK;
-       bool write = flags & FAULT_FLAG_WRITE;
+       unsigned long pmd_addr = vmf->address & PMD_MASK;
+       bool write = vmf->flags & FAULT_FLAG_WRITE;
        unsigned int iomap_flags = (write ? IOMAP_WRITE : 0) | IOMAP_FAULT;
        struct inode *inode = mapping->host;
        int result = VM_FAULT_FALLBACK;
Simple merge
index 2983e52efd07c103a476478fd77dbd2f576d0656,c1bd6ab5e97479d2af8914fc3df637a866d38db7..1e77ff5818f14e72f66e90d06275eb8994cfc3eb
@@@ -71,16 -71,14 +71,14 @@@ static inline unsigned int dax_radix_or
                return PMD_SHIFT - PAGE_SHIFT;
        return 0;
  }
- int dax_iomap_pmd_fault(struct vm_area_struct *vma, unsigned long address,
-               pmd_t *pmd, unsigned int flags, const struct iomap_ops *ops);
 -int dax_iomap_pmd_fault(struct vm_fault *vmf, struct iomap_ops *ops);
++int dax_iomap_pmd_fault(struct vm_fault *vmf, const struct iomap_ops *ops);
  #else
  static inline unsigned int dax_radix_order(void *entry)
  {
        return 0;
  }
- static inline int dax_iomap_pmd_fault(struct vm_area_struct *vma,
-               unsigned long address, pmd_t *pmd, unsigned int flags,
+ static inline int dax_iomap_pmd_fault(struct vm_fault *vmf,
 -              struct iomap_ops *ops)
 +              const struct iomap_ops *ops)
  {
        return VM_FAULT_FALLBACK;
  }
diff --cc init/Kconfig
Simple merge