Re: [PATCH] nfs: add missing CONFIG_MIGRATION for nfs_migrate_page

From: Anna Schumaker
Date: Mon Sep 19 2016 - 13:38:40 EST


Hi Chao,

On 09/19/2016 08:09 AM, Chao Yu wrote:
> We'd better to use CONFIG_MIGRATION to cover nfs_migrate_page, otherwise
> when CONFIG_MIGRATION is not defined, unused nfs_migrate_page will still
> be compiled into kernel.

I don't think that nfs_migrate_page is still compiled into the kernel when CONFIG_MIGRATION=n. The file fs/nfs/internal.h has:

#ifdef CONFIG_MIGRATION
extern int nfs_migrate_page(struct address_space *,
struct page *, struct page *, enum migrate_mode);
#else
#define nfs_migrate_page NULL
#endif

So it looks like we're just setting the variable to a NULL pointer in this case. I'm not opposed to your change, since it better matches how we've done things in other parts of the client, but can you please clean up internal.h while you're at it?

Thanks,
Anna

>
> Signed-off-by: Chao Yu <yuchao0@xxxxxxxxxx>
> ---
> fs/nfs/file.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/fs/nfs/file.c b/fs/nfs/file.c
> index 7d62097..6cfb83e 100644
> --- a/fs/nfs/file.c
> +++ b/fs/nfs/file.c
> @@ -543,7 +543,9 @@ const struct address_space_operations nfs_file_aops = {
> .invalidatepage = nfs_invalidate_page,
> .releasepage = nfs_release_page,
> .direct_IO = nfs_direct_IO,
> +#ifdef CONFIG_MIGRATION
> .migratepage = nfs_migrate_page,
> +#endif
> .launder_page = nfs_launder_page,
> .is_dirty_writeback = nfs_check_dirty_writeback,
> .error_remove_page = generic_error_remove_page,
>