mm/fs: route MADV_REMOVE to FALLOC_FL_PUNCH_HOLE
Hugh Dickins authored
Now tmpfs supports hole-punching via fallocate(), switch madvise_remove()
to use do_fallocate() instead of vmtruncate_range(): which extends
madvise(,,MADV_REMOVE) support from tmpfs to ext4, ocfs2 and xfs.

There is one more user of vmtruncate_range() in our tree,
staging/android's ashmem_shrink(): convert it to use do_fallocate() too
(but if its unpinned areas are already unmapped - I don't know - then it
would do better to use shmem_truncate_range() directly).
Based-on-patch-by: default avatarCong Wang <amwang@redhat.com>
Signed-off-by: default avatarHugh Dickins <hughd@google.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Colin Cross <ccross@android.com>
Cc: John Stultz <john.stultz@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@linux-foundation.org>
Cc: "Theodore Ts'o" <tytso@mit.edu>
Cc: Andreas Dilger <adilger@dilger.ca>
Cc: Mark Fasheh <mfasheh@suse.de>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Ben Myers <bpm@sgi.com>
Cc: Michael Kerrisk <mtk.manpages@gmail.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
3f31d075
Name Last commit Last update
..
Kconfig Cross Memory Attach: make it Kconfigurable
Kconfig.debug mm: more intensive memory corruption debugging
Makefile Cross Memory Attach: make it Kconfigurable
backing-dev.c backing-dev: fix wakeup timer races with bdi_unregister()
bootmem.c mm: remove sparsemem allocation details from the bootmem allocator
bounce.c mm: remove the second argument of k[un]map_atomic()
cleancache.c mm: cleancache: Use __read_mostly as appropiate.
compaction.c mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks
debug-pagealloc.c mm, x86: Remove debug_pagealloc_enabled
dmapool.c mm: fix implicit stat.h usage in dmapool.c
fadvise.c fadvise: only initiate writeback for specified range with FADV_DONTNEED
failslab.c switch debugfs to umode_t
filemap.c radix-tree: use iterators in find_get_pages* functions
filemap_xip.c mm/filemap_xip.c: fix race condition in xip_file_fault()
fremap.c mm: delete various needless include <linux/module.h>
highmem.c Merge branch 'modsplit-Oct31_2011' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux
huge_memory.c mm, thp: drop page_table_lock to uncharge memcg pages
hugetlb.c mm/hugetlb.c: use long vars instead of int in region_count()
hwpoison-inject.c HWPOISON: Clean up memory_failure() vs. __memory_failure()
init-mm.c atomic: use <linux/atomic.h>
internal.h mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks
kmemcheck.c kmemcheck: add hooks for the page allocator
kmemleak-test.c kmemleak: remove memset by using kzalloc
kmemleak.c kmemleak: Disable early logging when kmemleak is off by default
ksm.c ksm: cleanup: introduce find_mergeable_vma()
maccess.c mm: Map most files to use export.h instead of module.h
madvise.c mm/fs: route MADV_REMOVE to FALLOC_FL_PUNCH_HOLE
memblock.c memblock: memblock should be able to handle zero length operations
memcontrol.c shmem: replace page if mapping excludes its zone
memory-failure.c mm/memory_failure: let the compiler add the function name
memory.c thp, memcg: split hugepage for memcg oom on cow
memory_hotplug.c mm: print physical addresses consistently with other parts of kernel
mempolicy.c mm: do_migrate_pages(): rename arguments
mempool.c mempool: fix first round failure behavior
migrate.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
mincore.c mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode
mlock.c vm: avoid using find_vma_prev() unnecessarily
mm_init.c mm: Map most files to use export.h instead of module.h
mmap.c mm/mmap.c: find_vma(): remove unnecessary if(mm) check
mmu_context.c mm, counters: remove task argument to sync_mm_rss() and __sync_task_rss_stat()
mmu_notifier.c mm: Map most files to use export.h instead of module.h
mmzone.c mm: delete various needless include <linux/module.h>
mprotect.c Merge branch 'akpm' (Andrew's patch-bomb)
mremap.c mm: collapse security_vm_enough_memory() variants into a single function
msync.c sanitize vfs_fsync calling conventions
nobootmem.c mm: remove sparsemem allocation details from the bootmem allocator
nommu.c kill mm argument of vm_munmap()
oom_kill.c userns: Store uid and gid values in struct cred with kuid_t and kgid_t types
page-writeback.c writeback: initialize global_dirty_limit
page_alloc.c mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks
page_cgroup.c
page_io.c
page_isolation.c
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
pgtable-generic.c
prio_tree.c
process_vm_access.c
quicklist.c
readahead.c
rmap.c
shmem.c
slab.c
slob.c
slub.c
sparse-vmemmap.c
sparse.c
swap.c
swap_state.c
swapfile.c
truncate.c
util.c
vmalloc.c
vmscan.c
vmstat.c