Re: [PATCH 1/5] mm: migrate: Add mode parameter to support additional page copy routines.

From: Balbir Singh
Date: Thu Nov 24 2016 - 18:56:35 EST




On 23/11/16 03:25, Zi Yan wrote:
> From: Zi Yan <zi.yan@xxxxxxxxxxxxxx>
>
> From: Zi Yan <ziy@xxxxxxxxxx>
>
> migrate_page_copy() and copy_huge_page() are affected.
>
> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx>
> Signed-off-by: Zi Yan <zi.yan@xxxxxxxxxxxxxx>
> ---
> fs/aio.c | 2 +-
> fs/hugetlbfs/inode.c | 2 +-
> fs/ubifs/file.c | 2 +-
> include/linux/migrate.h | 6 ++++--
> mm/migrate.c | 14 ++++++++------
> 5 files changed, 15 insertions(+), 11 deletions(-)
>
> diff --git a/fs/aio.c b/fs/aio.c
> index 428484f..a67c764 100644
> --- a/fs/aio.c
> +++ b/fs/aio.c
> @@ -418,7 +418,7 @@ static int aio_migratepage(struct address_space *mapping, struct page *new,
> * events from being lost.
> */
> spin_lock_irqsave(&ctx->completion_lock, flags);
> - migrate_page_copy(new, old);
> + migrate_page_copy(new, old, 0);

Can we have a useful enum instead of 0, its harder to read and understand
0

> BUG_ON(ctx->ring_pages[idx] != old);
> ctx->ring_pages[idx] = new;
> spin_unlock_irqrestore(&ctx->completion_lock, flags);
> diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
> index 4fb7b10..a17bfef 100644
> --- a/fs/hugetlbfs/inode.c
> +++ b/fs/hugetlbfs/inode.c
> @@ -850,7 +850,7 @@ static int hugetlbfs_migrate_page(struct address_space *mapping,
> rc = migrate_huge_page_move_mapping(mapping, newpage, page);
> if (rc != MIGRATEPAGE_SUCCESS)
> return rc;
> - migrate_page_copy(newpage, page);
> + migrate_page_copy(newpage, page, 0);

Ditto

>
> return MIGRATEPAGE_SUCCESS;
> }
> diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c
> index b4fbeef..bf54e32 100644
> --- a/fs/ubifs/file.c
> +++ b/fs/ubifs/file.c
> @@ -1468,7 +1468,7 @@ static int ubifs_migrate_page(struct address_space *mapping,
> SetPagePrivate(newpage);
> }
>
> - migrate_page_copy(newpage, page);
> + migrate_page_copy(newpage, page, 0);

Here as well


Balbir Singh.