diff options
author | Christoph Lameter <clameter@sgi.com> | 2006-02-01 06:05:41 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-01 11:53:17 -0500 |
commit | e965f9630c651fa4249039fd4b80c9392d07a856 (patch) | |
tree | 1353dd536d0ee549c30e462086624c21788ee9d2 /fs/xfs | |
parent | 7e2ab150d1b3b286a4c864c60a549b2601777b63 (diff) |
[PATCH] Direct Migration V9: Avoid writeback / page_migrate() method
Migrate a page with buffers without requiring writeback
This introduces a new address space operation migratepage() that may be used
by a filesystem to implement its own version of page migration.
A version is provided that migrates buffers attached to pages. Some
filesystems (ext2, ext3, xfs) are modified to utilize this feature.
The swapper address space operation are modified so that a regular
migrate_page() will occur for anonymous pages without writeback (migrate_pages
forces every anonymous page to have a swap entry).
Signed-off-by: Mike Kravetz <kravetz@us.ibm.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/xfs')
-rw-r--r-- | fs/xfs/linux-2.6/xfs_aops.c | 1 | ||||
-rw-r--r-- | fs/xfs/linux-2.6/xfs_buf.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 120626789406..9892268e3005 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c | |||
@@ -1462,4 +1462,5 @@ struct address_space_operations linvfs_aops = { | |||
1462 | .commit_write = generic_commit_write, | 1462 | .commit_write = generic_commit_write, |
1463 | .bmap = linvfs_bmap, | 1463 | .bmap = linvfs_bmap, |
1464 | .direct_IO = linvfs_direct_IO, | 1464 | .direct_IO = linvfs_direct_IO, |
1465 | .migratepage = buffer_migrate_page, | ||
1465 | }; | 1466 | }; |
diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index a36a8e3b703f..bfb4f2917bb6 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c | |||
@@ -1521,6 +1521,7 @@ xfs_mapping_buftarg( | |||
1521 | struct address_space *mapping; | 1521 | struct address_space *mapping; |
1522 | static struct address_space_operations mapping_aops = { | 1522 | static struct address_space_operations mapping_aops = { |
1523 | .sync_page = block_sync_page, | 1523 | .sync_page = block_sync_page, |
1524 | .migratepage = fail_migrate_page, | ||
1524 | }; | 1525 | }; |
1525 | 1526 | ||
1526 | inode = new_inode(bdev->bd_inode->i_sb); | 1527 | inode = new_inode(bdev->bd_inode->i_sb); |