On Wed, Nov 07, 2012 at 11:56:10AM -0800, Andrew Morton wrote: > On Wed, 7 Nov 2012 01:05:48 -0200 > Rafael Aquini <aquini@xxxxxxxxxx> wrote: > > > This patch introduces MIGRATEPAGE_SUCCESS as the default return code > > for address_space_operations.migratepage() method and documents the > > expected return code for the same method in failure cases. > > I hit a large number of rejects applying this against linux-next. Due > to the increasingly irritating sched/numa code in there. > > I attempted to fix it up and also converted some (but not all) of the > implicit tests of `rc' against zero. > > Please check the result very carefully - more changes will be needed. > > All those > > - if (rc) > + if (rc != MIGRATEPAGE_SUCCESS) > > changes are a pain. Perhaps we shouldn't bother. Thanks for doing that. This hunk at migrate_pages(), however, is not necessary: @@ -1001,7 +1001,7 @@ out: if (!swapwrite) current->flags &= ~PF_SWAPWRITE; - if (rc) + if (rc != MIGRATEPAGE_SUCCESS) return rc; Here, migrate_pages() is not testing rc for the migration success, but it's just trying to devise the flow if it has to return -ENOMEM, actually. I guess, a change to make that snippet more clear could be: diff --git a/mm/migrate.c b/mm/migrate.c index 77ed2d7..6562aee 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -987,7 +987,7 @@ int migrate_pages(struct list_head *from, case -EAGAIN: retry++; break; - case 0: + case MIGRATEPAGE_SUCCESS: break; default: /* Permanent failure */ @@ -996,15 +996,12 @@ int migrate_pages(struct list_head *from, } } } - rc = 0; + rc = nr_failed + retry; out: if (!swapwrite) current->flags &= ~PF_SWAPWRITE; - if (rc) - return rc; - - return nr_failed + retry; + return rc; } I can rebase this patch and resubmit if you prefer -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>