Re: [PATCH] mm: compaction: fix dummy declarations

From: Minchan Kim
Date: Wed Jun 15 2016 - 19:30:32 EST


Hi Andrew,

On Wed, Jun 15, 2016 at 02:48:25PM -0700, Andrew Morton wrote:
> On Wed, 15 Jun 2016 23:39:12 +0200 Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> > We get a build error in several test builds after a recent code rework:
> >
> > In file included from include/linux/balloon_compaction.h:48:0,
> > from mm/balloon_compaction.c:11:
> > include/linux/compaction.h:237:122: error: 'struct node' declared inside parameter list will not be visible outside of this definition or declaration [-Werror]
> >
> > The patch that likely introduced the problem added a forward declaration
> > for 'struct node' in linux/compaction.h, but only in one of two instances.
> >
> > This moves the declaration out of the #ifdef so we always get it.
>
> http://ozlabs.org/~akpm/mmots/broken-out/mm-balloon-use-general-non-lru-movable-page-feature-fix.patch
> should fix this. I guess I should do another -mm.
>

[1] solves the issues so we can revert your patch with removing remaining
forward declaration in below code snippet.
If I should resend patch with removing remainiang forward declaration part,
please tell me.

Thanks.

compaction.h:

#if defined(CONFIG_COMPACTION) && defined(CONFIG_SYSFS) && defined(CONFIG_NUMA)
struct node; <----- Here
extern int compaction_register_node(struct node *node);
...
#else
...

#endif /* CONFIG_COMPACTION && CONFIG_SYSFS && CONFIG_NUMA */


[1] http://ozlabs.org/~akpm/mmots/broken-out/mm-fix-build-warnings-in-linux-compactionh.patch

Thanks.