Subject: Re: linux-next: build failure after merge of the akpm tree

From: Andrew Morton <[email-masked]>
Date: Fri, 13 Nov 2020 17:14:52 -0800

On Fri, 13 Nov 2020 18:02:39 +1100 Stephen Rothwell <[email-masked]> wrote:

> Hi all,
> 
> After merging the akpm tree, today's linux-next build (i386 defconfig)
> failed like this:
> 
> mm/secretmem.c: In function 'secretmem_memcg_charge':
> mm/secretmem.c:72:4: error: 'struct page' has no member named 'memcg_data'
>    72 |   p->memcg_data = page->memcg_data;
>       |    ^~
> mm/secretmem.c:72:23: error: 'struct page' has no member named 'memcg_data'
>    72 |   p->memcg_data = page->memcg_data;
>       |                       ^~
> mm/secretmem.c: In function 'secretmem_memcg_uncharge':
> mm/secretmem.c:86:4: error: 'struct page' has no member named 'memcg_data'
>    86 |   p->memcg_data = 0;
>       |    ^~
> 
> ...
>
> --- a/mm/secretmem.c
> +++ b/mm/secretmem.c
> @@ -69,7 +69,9 @@ static int secretmem_memcg_charge(struct page *page, gfp_t gfp, int order)
>  	for (i = 1; i < nr_pages; i++) {
>  		struct page *p = page + i;
>  
> +#ifdef CONFIG_MEMCG
>  		p->memcg_data = page->memcg_data;
> +#endif
>  	}
>  
>  	return 0;

Thanks, that'll work for now.

I guess we're looking at adding a set_page_memcg() (I'd prefer
page_memcg_set()).

But probably these functions shouldn't be compiled at all if
CONFIG_MEMCG=n.