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 <[email protected]>
> ---
> 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,
>