Dave Chinner
d87815cb20
writeback: limit write_cache_pages integrity scanning to current EOF
...
sync can currently take a really long time if a concurrent writer is
extending a file. The problem is that the dirty pages on the address
space grow in the same direction as write_cache_pages scans, so if
the writer keeps ahead of writeback, the writeback will not
terminate until the writer stops adding dirty pages.
For a data integrity sync, we only need to write the pages dirty at
the time we start the writeback, so we can stop scanning once we get
to the page that was at the end of the file at the time the scan
started.
This will prevent operations like copying a large file preventing
sync from completing as it will not write back pages that were
dirtied after the sync was started. This does not impact the
existing integrity guarantees, as any dirty page (old or new)
within the EOF range at the start of the scan will still be
captured.
This patch will not prevent sync from blocking on large writes into
holes. That requires more complex intervention while this patch only
addresses the common append-case of this sync holdoff.
Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-06-08 18:12:44 -07:00
..
backing-dev.c
writeback: fixups for !dirty_writeback_centisecs
2010-05-21 20:00:35 +02:00
bootmem.c
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-tip
2010-04-07 11:02:23 -07:00
bounce.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
compaction.c
mm: compaction: add a tunable that decides when memory should be compacted and when it should be reclaimed
2010-05-25 08:06:59 -07:00
debug-pagealloc.c
dmapool.c
fadvise.c
readahead: introduce FMODE_RANDOM for POSIX_FADV_RANDOM
2010-03-06 11:26:25 -08:00
failslab.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
filemap.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse
2010-05-30 09:16:14 -07:00
filemap_xip.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
fremap.c
mm: clean up mm_counter
2010-03-06 11:26:23 -08:00
highmem.c
highmem: remove unneeded #ifdef CONFIG_TRACE_IRQFLAGS_SUPPORT for debug_kmap_atomic()
2010-05-25 08:07:01 -07:00
hugetlb.c
cpuset,mm: fix no node to alloc memory when changing cpuset's mems
2010-05-25 08:06:57 -07:00
hwpoison-inject.c
HWPOISON: Don't do early filtering if filter is disabled
2009-12-16 12:20:01 +01:00
init-mm.c
internal.h
HWPOISON: add an interface to switch off/on all the page filters
2009-12-16 12:19:59 +01:00
Kconfig
mm: allow CONFIG_MIGRATION to be set without CONFIG_NUMA or memory hot-remove
2010-05-25 08:06:59 -07:00
Kconfig.debug
kmemcheck.c
kmemcheck: Fix build errors due to missing slab.h
2010-03-30 22:02:32 +09:00
kmemleak-test.c
kmemleak.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
ksm.c
mm: migration: share the anon_vma ref counts between KSM and page migration
2010-05-25 08:06:58 -07:00
maccess.c
maccess,probe_kernel: Allow arch specific override probe_kernel_(read|write)
2010-01-07 11:58:36 -06:00
madvise.c
HWPOISON: Add a madvise() injector for soft page offlining
2009-12-16 12:20:00 +01:00
Makefile
mm: compaction: memory compaction core
2010-05-25 08:06:59 -07:00
memcontrol.c
memcg: clean up memory thresholds
2010-05-27 09:12:44 -07:00
memory-failure.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
memory.c
mm: document follow_page()
2010-05-25 08:07:00 -07:00
memory_hotplug.c
mem-hotplug: fix potential race while building zonelist for new populated zone
2010-05-25 08:07:02 -07:00
mempolicy.c
mempolicy: ERR_PTR dereference in mpol_shared_policy_init()
2010-05-26 08:19:23 -07:00
mempool.c
migrate.c
memcg: fix mis-accounting of file mapped racy with migration
2010-05-27 09:12:44 -07:00
mincore.c
mincore: do nested page table walks
2010-05-25 08:06:58 -07:00
mlock.c
x86, perf, bts, mm: Delete the never used BTS-ptrace code
2010-03-26 11:33:55 +01:00
mm_init.c
mmap.c
mmap: check ->vm_ops before dereferencing
2010-04-27 08:26:51 -07:00
mmu_context.c
exit: fix oops in sync_mm_rss
2010-03-24 16:31:21 -07:00
mmu_notifier.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
mmzone.c
mprotect.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
mremap.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
msync.c
sanitize vfs_fsync calling conventions
2010-05-21 18:31:21 -04:00
nommu.c
nommu: allow private mappings of read-only devices
2010-05-26 08:19:23 -07:00
oom_kill.c
memcg: make oom killer a no-op when no killable task can be found
2010-05-27 09:12:43 -07:00
page-writeback.c
writeback: limit write_cache_pages integrity scanning to current EOF
2010-06-08 18:12:44 -07:00
page_alloc.c
numa: introduce numa_mem_id()- effective local memory node id
2010-05-27 09:12:57 -07:00
page_cgroup.c
memcg: avoid use cmpxchg in swap cgroup maintainance
2010-03-17 18:43:47 -07:00
page_io.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
page_isolation.c
pagewalk.c
pagemap: fix pfn calculation for hugepage
2010-04-07 08:38:04 -07:00
percpu-km.c
percpu: implement kernel memory based chunk allocation
2010-05-01 08:30:50 +02:00
percpu-vm.c
percpu: move vmalloc based chunk management into percpu-vm.c
2010-05-01 08:30:50 +02:00
percpu.c
percpu: implement kernel memory based chunk allocation
2010-05-01 08:30:50 +02:00
percpu_up.c
percpu: don't implicitly include slab.h from percpu.h
2010-03-30 22:02:32 +09:00
prio_tree.c
quicklist.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
readahead.c
readahead.c: fix comment
2010-05-25 08:07:00 -07:00
rmap.c
mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks
2010-05-25 08:06:59 -07:00
shmem.c
fix truncate inode time modification breakage
2010-06-04 17:16:30 -04:00
slab.c
numa: slab: use numa_mem_id() for slab local memory node
2010-05-27 09:12:57 -07:00
slob.c
mm: Move ARCH_SLAB_MINALIGN and ARCH_KMALLOC_MINALIGN to <linux/slob_def.h>
2010-05-19 22:03:13 +03:00
slub.c
Merge branch 'slub/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6
2010-05-30 12:46:17 -07:00
sparse-vmemmap.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
sparse.c
sparsemem: on no vmemmap path put mem_map on node high too
2010-05-25 08:06:56 -07:00
swap.c
mm: export lru_cache_add_*() to modules
2010-05-25 15:06:06 +02:00
swap_state.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
2010-03-30 22:02:32 +09:00
swapfile.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
2010-05-21 15:26:46 -07:00
thrash.c
truncate.c
fs: introduce new truncate sequence
2010-05-27 22:15:33 -04:00
util.c
slab: Generify kernel pointer validation
2010-04-09 10:09:50 -07:00
vmalloc.c
mm: purge fragmented percpu vmap blocks
2010-02-02 12:50:47 -08:00
vmscan.c
vmscan: fix do_try_to_free_pages() return value when priority==0 reclaim failure
2010-06-04 15:21:45 -07:00
vmstat.c
mm: compaction: direct compact when a high-order allocation fails
2010-05-25 08:06:59 -07:00