[lkml]   [2013]   [Jul]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
Patch in this message
SubjectRe: [PATCH V2 2/2] fs/aio: Add support to aio ring pages migration
On Wed, Jul 17, 2013 at 05:22:30PM +0800, Gu Zheng wrote:
> As the aio job will pin the ring pages, that will lead to mem migrated
> failed. In order to fix this problem we use an anon inode to manage the aio ring
> pages, and setup the migratepage callback in the anon inode's address space, so
> that when mem migrating the aio ring pages will be moved to other mem node safely.
> v1->v2:
> Fix build failed issue if CONFIG_MIGRATION disabled.
> Fix some minor issues under Benjamin's comments.

I don't know what you did with this patch, but it doesn't apply to any of
the trees I can find, and interdiff isn't able to compare it against your
original patch. Since the first version of the patch was already applied
it is generally more appropriate to provide an incremental fix. I've
added the following to my tree (git://
to fix the build issue. I've tested this with CONFIG_MIGRATION enabled
and disabled on x86.

"Thought is the essence of where you are now."

From 0c45355fc7c48c82db151bf0e7ca305d513e639e Mon Sep 17 00:00:00 2001
From: Benjamin LaHaise <>
Date: Wed, 17 Jul 2013 09:34:24 -0400
Subject: [PATCH] aio: fix build when migration is disabled

When "fs/aio: Add support to aio ring pages migration" was applied, it
broke the build when CONFIG_MIGRATION was disabled. Wrap the migration
code with a test for CONFIG_MIGRATION to fix this and save a few bytes
when migration is disabled.

Signed-off-by: Benjamin LaHaise <>
fs/aio.c | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/fs/aio.c b/fs/aio.c
index cbd0afe..dedeea0 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -181,6 +181,7 @@ static int aio_set_page_dirty(struct page *page)
return 0;

static int aio_migratepage(struct address_space *mapping, struct page *new,
struct page *old, enum migrate_mode mode)
@@ -208,10 +209,13 @@ static int aio_migratepage(struct address_space *mapping, struct page *new,

return rc;

static const struct address_space_operations aio_ctx_aops = {
.set_page_dirty = aio_set_page_dirty,
.migratepage = aio_migratepage,

static int aio_setup_ring(struct kioctx *ctx)

 \ /
  Last update: 2013-07-17 16:21    [W:0.070 / U:8.428 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site