Re: [PATCH] autofs: make autofs4 and autofs mutually exclusive

From: Ian Kent
Date: Tue May 29 2018 - 20:48:17 EST


On Tue, 2018-05-29 at 11:46 +0200, Arnd Bergmann wrote:
> The autofs4 implementation is just a redirect to autofs now, but that
> also means we can't have both built into the same kernel:
>
> fs/autofs/inode.o: In function `autofs_new_ino':
> inode.c:(.text+0x1b8): multiple definition of `autofs_new_ino'
> fs/autofs/inode.o:inode.c:(.text+0x1b8): first defined here
> fs/autofs/inode.o: In function `autofs_clean_ino':
> inode.c:(.text+0x288): multiple definition of `autofs_clean_ino'
>
> There is also a problem with trying to build both in parallel, which
> leads to two 'make' processes writing to the same fs/autofs/.*.o.cmd
> file, causing corruption that manifests like
>
> fs/autofs4/../autofs/.expire.o.cmd:679: *** missing separator. Stop.
>
> Making AUTOFS4_FS depend on AUTOFS_FS being disabled should avoid all
> configurations that run into either issue.

Thanks Arnd and this adds support that my analysis of build
problems is accurate.

I posted a similar patch on May 21 which also added a NOTE to
fs/autofs4/Kconfig saying pretty much what you've said.
https://patchwork.kernel.org/patch/10413823/

I recommend using my patch so that anyone that's surprised by the
.config change has a chance of finding an explanation somewhere, ;)

Not only is the change needed, but to preserve bisection it needs
to be folded into the original patch titled:
autofs: create autofs Kconfig and Makefile

otherwise build test robots will still see this problem between
build testing after "autofs: create autofs Kconfig and Makefile"
and before this change is applied.

Folding in the change is my current recommendation to Andrew.
Hopefully that will fix the problem.

Any further thoughts are of course welcome.

>
> Fixes: mmotm ("autofs: update fs/autofs4/Makefile")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> fs/autofs4/Kconfig | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/autofs4/Kconfig b/fs/autofs4/Kconfig
> index 53bc592a250d..eccf673c6c8c 100644
> --- a/fs/autofs4/Kconfig
> +++ b/fs/autofs4/Kconfig
> @@ -1,5 +1,6 @@
> config AUTOFS4_FS
> tristate "Kernel automounter version 4 support (also supports v3 and
> v5)"
> + depends on AUTOFS_FS=n
> default n
> help
> The automounter is a tool to automatically mount remote file
> systems