kernel_optimize_test/mm
Josef Bacik afa2db2fb6 tmpfs: truncate prealloc blocks past i_size
One of the rocksdb people noticed that when you do something like this

    fallocate(fd, FALLOC_FL_KEEP_SIZE, 0, 10M)
    pwrite(fd, buf, 5M, 0)
    ftruncate(5M)

on tmpfs, the file would still take up 10M: which led to super fun
issues because we were getting ENOSPC before we thought we should be
getting ENOSPC.  This patch fixes the problem, and mirrors what all the
other fs'es do (and was agreed to be the correct behaviour at LSF).

I tested it locally to make sure it worked properly with the following

    xfs_io -f -c "falloc -k 0 10M" -c "pwrite 0 5M" -c "truncate 5M" file

Without the patch we have "Blocks: 20480", with the patch we have the
correct value of "Blocks: 10240".

Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Hugh Dickins <hughd@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-06-24 17:49:45 -07:00
..
kasan
backing-dev.c
balloon_compaction.c
bootmem.c
cleancache.c
cma_debug.c
cma.c mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute 2015-06-24 17:49:44 -07:00
cma.h
compaction.c
debug-pagealloc.c
debug.c
dmapool.c
early_ioremap.c
fadvise.c
failslab.c
filemap.c mm: do not ignore mapping_gfp_mask in page cache allocation paths 2015-06-24 17:49:44 -07:00
frontswap.c frontswap: allow multiple backends 2015-06-24 17:49:45 -07:00
gup.c
highmem.c
huge_memory.c mm: clarify that the function operates on hugepage pte 2015-06-24 17:49:44 -07:00
hugetlb_cgroup.c
hugetlb.c mm/hugetlb: handle races in alloc_huge_page and hugetlb_reserve_pages 2015-06-24 17:49:44 -07:00
hwpoison-inject.c mm/memory-failure: introduce get_hwpoison_page() for consistent refcount handling 2015-06-24 17:49:42 -07:00
init-mm.c
internal.h
interval_tree.c
Kconfig tracing: add trace event for memory-failure 2015-06-24 17:49:43 -07:00
Kconfig.debug
kmemcheck.c
kmemleak-test.c
kmemleak.c mm: kmemleak: optimise kmemleak_lock acquiring during kmemleak_scan 2015-06-24 17:49:45 -07:00
ksm.c
list_lru.c
maccess.c
madvise.c
Makefile
memblock.c mm/memblock: allocate boot time data structures from mirrored memory 2015-06-24 17:49:45 -07:00
memcontrol.c memcg: convert mem_cgroup->under_oom from atomic_t to int 2015-06-24 17:49:45 -07:00
memory_hotplug.c mm/memory hotplug: print the last vmemmap region at the end of hot add memory 2015-06-24 17:49:45 -07:00
memory-failure.c tracing: add trace event for memory-failure 2015-06-24 17:49:43 -07:00
memory.c mm, memcg: Try charging a page before setting page up to date 2015-06-24 17:49:43 -07:00
mempolicy.c
mempool.c
memtest.c mm/memblock: add extra "flags" to memblock to allow selection of memory based on attribute 2015-06-24 17:49:44 -07:00
migrate.c mm: clarify that the function operates on hugepage pte 2015-06-24 17:49:44 -07:00
mincore.c
mlock.c
mm_init.c
mmap.c mm/mmap.c: optimization of do_mmap_pgoff function 2015-06-24 17:49:45 -07:00
mmu_context.c
mmu_notifier.c
mmzone.c
mprotect.c mm: fix mprotect() behaviour on VM_LOCKED VMAs 2015-06-24 17:49:41 -07:00
mremap.c mm: new arch_remap() hook 2015-06-24 17:49:41 -07:00
msync.c
nobootmem.c mm/memblock: allocate boot time data structures from mirrored memory 2015-06-24 17:49:45 -07:00
nommu.c mm: nommu: refactor debug and warning prints 2015-06-24 17:49:44 -07:00
oom_kill.c mm/oom_kill.c: print points as unsigned int 2015-06-24 17:49:44 -07:00
page_alloc.c mm: page_alloc: inline should_alloc_retry() 2015-06-24 17:49:43 -07:00
page_counter.c
page_ext.c
page_io.c
page_isolation.c
page_owner.c
page-writeback.c
pagewalk.c
percpu-km.c
percpu-vm.c
percpu.c
pgtable-generic.c mm: clarify that the function operates on hugepage pte 2015-06-24 17:49:44 -07:00
process_vm_access.c
quicklist.c
readahead.c
rmap.c mm: clarify that the function operates on hugepage pte 2015-06-24 17:49:44 -07:00
shmem.c tmpfs: truncate prealloc blocks past i_size 2015-06-24 17:49:45 -07:00
slab_common.c slab: correct size_index table before replacing the bootstrap kmem_cache_node 2015-06-24 17:49:41 -07:00
slab.c slab: correct size_index table before replacing the bootstrap kmem_cache_node 2015-06-24 17:49:41 -07:00
slab.h slab: correct size_index table before replacing the bootstrap kmem_cache_node 2015-06-24 17:49:41 -07:00
slob.c
slub.c slab: correct size_index table before replacing the bootstrap kmem_cache_node 2015-06-24 17:49:41 -07:00
sparse-vmemmap.c
sparse.c
swap_cgroup.c
swap_state.c
swap.c mm: drop bogus VM_BUG_ON_PAGE assert in put_page() codepath 2015-06-24 17:49:42 -07:00
swapfile.c
truncate.c
util.c
vmacache.c
vmalloc.c
vmpressure.c
vmscan.c mm: rename RECLAIM_SWAP to RECLAIM_UNMAP 2015-06-24 17:49:42 -07:00
vmstat.c
workingset.c
zbud.c
zpool.c
zsmalloc.c
zswap.c