linux/fs/btrfs
Mel Gorman a6bc32b899 mm: compaction: introduce sync-light migration for use by compaction
This patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT
mode that avoids writing back pages to backing storage.  Async compaction
maps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.
For other migrate_pages users such as memory hotplug, MIGRATE_SYNC is
used.

This avoids sync compaction stalling for an excessive length of time,
particularly when copying files to a USB stick where there might be a
large number of dirty pages backed by a filesystem that does not support
->writepages.

[aarcange@redhat.com: This patch is heavily based on Andrea's work]
[akpm@linux-foundation.org: fix fs/nfs/write.c build]
[akpm@linux-foundation.org: fix fs/btrfs/disk-io.c build]
Signed-off-by: Mel Gorman <mgorman@suse.de>
Reviewed-by: Rik van Riel <riel@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Dave Jones <davej@redhat.com>
Cc: Jan Kara <jack@suse.cz>
Cc: Andy Isaacson <adi@hexapodia.org>
Cc: Nai Xia <nai.xia@gmail.com>
Cc: Johannes Weiner <jweiner@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-01-12 20:13:09 -08:00
..
acl.c Btrfs: fix return value of btrfs_get_acl() 2011-10-20 18:10:47 +02:00
async-thread.c Merge branch 'pm-sleep' into pm-for-linus 2011-12-25 23:42:20 +01:00
async-thread.h Btrfs: fix num_workers_starting bug and other bugs in async thread 2011-12-15 11:04:21 -05:00
backref.c btrfs: Fix up 32/64-bit compatibility for new ioctls 2011-11-20 07:42:13 -05:00
backref.h btrfs: added helper functions to iterate backrefs 2011-09-29 12:54:27 +02:00
btrfs_inode.h Btrfs: fix our reservations for updating an inode when completing io 2011-11-08 15:47:34 -05:00
compat.h
compression.c btrfs: separate superblock items out of fs_info 2011-11-06 03:04:01 -05:00
compression.h
ctree.c Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush 2011-11-15 09:53:28 -05:00
ctree.h Btrfs: deal with enospc from dirtying inodes properly 2011-12-15 11:04:21 -05:00
delayed-inode.c Merge branches 'for-linus' and 'for-linus-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2011-12-16 12:15:50 -08:00
delayed-inode.h
delayed-ref.c
delayed-ref.h
dir-item.c
disk-io.c mm: compaction: introduce sync-light migration for use by compaction 2012-01-12 20:13:09 -08:00
disk-io.h Merge branch 'for-chris' of git://github.com/sensille/linux into integration 2011-11-06 03:05:08 -05:00
export.c
export.h
extent_io.c Btrfs: drop spin lock when memory alloc fails 2011-12-08 08:55:47 -05:00
extent_io.h btrfs: mirror_num should be int, not u64 2011-11-20 07:42:14 -05:00
extent_map.c
extent_map.h
extent-tree.c Merge branches 'for-linus' and 'for-linus-3.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2011-12-16 12:15:50 -08:00
file-item.c btrfs: separate superblock items out of fs_info 2011-11-06 03:04:01 -05:00
file.c Merge branch 'writeback-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/wfg/linux 2012-01-10 16:59:59 -08:00
free-space-cache.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
free-space-cache.h
hash.h
inode-item.c
inode-map.c Btrfs: fix no reserved space for writing out inode cache 2011-11-10 20:45:04 -05:00
inode-map.h
inode.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2012-01-08 13:21:22 -08:00
ioctl.c vfs: mnt_drop_write_file() 2012-01-03 22:52:40 -05:00
ioctl.h Btrfs: fix the new inspection ioctls for 32 bit compat 2011-11-06 03:08:49 -05:00
Kconfig
locking.c
locking.h
lzo.c
Makefile Merge git://git.jan-o-sch.net/btrfs-unstable into integration 2011-11-06 03:07:10 -05:00
ordered-data.c
ordered-data.h
orphan.c
print-tree.c btrfs: fix oops on failure path 2011-10-20 18:10:50 +02:00
print-tree.h
reada.c Btrfs: rename btrfs_bio multi -> bbio for consistency 2011-11-06 03:11:21 -05:00
relocation.c Btrfs: fix how we do delalloc reservations and how we free reservations on error 2011-12-15 11:04:22 -05:00
root-tree.c
scrub.c Btrfs: fix num_workers_starting bug and other bugs in async thread 2011-12-15 11:04:21 -05:00
struct-funcs.c
super.c vfs: switch ->show_options() to struct dentry * 2012-01-06 23:19:54 -05:00
sysfs.c
transaction.c Btrfs: fix tree corruption after multi-thread snapshots and inode_cache flush 2011-11-15 09:53:28 -05:00
transaction.h
tree-defrag.c
tree-log.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2011-11-06 20:03:41 -08:00
tree-log.h
version.h
volumes.c Btrfs: unplug every once and a while 2011-12-15 15:38:41 -05:00
volumes.h Btrfs: fix barrier flushes 2011-11-20 07:21:14 -05:00
xattr.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs 2011-11-06 20:03:41 -08:00
xattr.h
zlib.c