<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">

ext2 filesystem defines its migrate_page method, which passes
migrate_page_buffer() to generic_migrate_page(). migrate_page_buffer()
can migrate a buffer-attached page without writeback I/O.

Signed-off-by: Hirokazu Takahashi &lt;taka@valinux.co.jp&gt;
Signed-off-by: Dave Hansen &lt;haveblue@us.ibm.com&gt;
---

 memhotplug-dave/fs/ext2/inode.c |    9 +++++++++
 1 files changed, 9 insertions(+)

diff -puN fs/ext2/inode.c~P21-nowriteback-ext2 fs/ext2/inode.c
--- memhotplug/fs/ext2/inode.c~P21-nowriteback-ext2	2004-12-08 14:57:46.000000000 -0800
+++ memhotplug-dave/fs/ext2/inode.c	2004-12-08 14:57:46.000000000 -0800
@@ -31,6 +31,7 @@
 #include &lt;linux/writeback.h&gt;
 #include &lt;linux/buffer_head.h&gt;
 #include &lt;linux/mpage.h&gt;
+#include &lt;linux/mmigrate.h&gt;
 #include "ext2.h"
 #include "acl.h"
 
@@ -660,6 +661,12 @@ ext2_writepages(struct address_space *ma
 	return mpage_writepages(mapping, wbc, ext2_get_block);
 }
 
+static int
+ext2_migrate_page(struct page *from, struct page *to)
+{
+	return generic_migrate_page(from, to, migrate_page_buffer);
+}
+
 struct address_space_operations ext2_aops = {
 	.readpage		= ext2_readpage,
 	.readpages		= ext2_readpages,
@@ -670,6 +677,7 @@ struct address_space_operations ext2_aop
 	.bmap			= ext2_bmap,
 	.direct_IO		= ext2_direct_IO,
 	.writepages		= ext2_writepages,
+	.migrate_page		= ext2_migrate_page,
 };
 
 struct address_space_operations ext2_nobh_aops = {
@@ -682,6 +690,7 @@ struct address_space_operations ext2_nob
 	.bmap			= ext2_bmap,
 	.direct_IO		= ext2_direct_IO,
 	.writepages		= ext2_writepages,
+	.migrate_page		= ext2_migrate_page,
 };
 
 /*
_
</pre></body></html>